aboutsummaryrefslogtreecommitdiff
path: root/lib/std
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2021-11-24 23:08:16 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-11-24 23:08:16 -0700
commit6b87f0dc56b82c2f27d70271626480d21a4d0d66 (patch)
treeba5f9b2d9ee16e8b981bdbe2c913a0e11b4e131f /lib/std
parentb560f46c871f234a8b2f762c03984eef963f360a (diff)
downloadzig-6b87f0dc56b82c2f27d70271626480d21a4d0d66.tar.gz
zig-6b87f0dc56b82c2f27d70271626480d21a4d0d66.zip
build system: add --debug-log advanced option to build runner
Diffstat (limited to 'lib/std')
-rw-r--r--lib/std/build.zig6
-rw-r--r--lib/std/special/build_runner.zig9
2 files changed, 15 insertions, 0 deletions
diff --git a/lib/std/build.zig b/lib/std/build.zig
index 750cff2202..c018397ffa 100644
--- a/lib/std/build.zig
+++ b/lib/std/build.zig
@@ -68,6 +68,7 @@ pub const Builder = struct {
vcpkg_root: VcpkgRoot,
pkg_config_pkg_list: ?(PkgConfigError![]const PkgConfigPkg) = null,
args: ?[][]const u8 = null,
+ debug_log_scopes: []const []const u8 = &.{},
const PkgConfigError = error{
PkgConfigCrashed,
@@ -2334,6 +2335,11 @@ pub const LibExeObjStep = struct {
try zig_args.append(self.name_prefix);
}
+ for (builder.debug_log_scopes) |log_scope| {
+ try zig_args.append("--debug-log");
+ try zig_args.append(log_scope);
+ }
+
if (builder.verbose_tokenize) zig_args.append("--verbose-tokenize") catch unreachable;
if (builder.verbose_ast) zig_args.append("--verbose-ast") catch unreachable;
if (builder.verbose_cimport) zig_args.append("--verbose-cimport") catch unreachable;
diff --git a/lib/std/special/build_runner.zig b/lib/std/special/build_runner.zig
index 666abf247a..d314cb4fee 100644
--- a/lib/std/special/build_runner.zig
+++ b/lib/std/special/build_runner.zig
@@ -51,6 +51,7 @@ pub fn main() !void {
defer builder.destroy();
var targets = ArrayList([]const u8).init(allocator);
+ var debug_log_scopes = ArrayList([]const u8).init(allocator);
const stderr_stream = io.getStdErr().writer();
const stdout_stream = io.getStdOut().writer();
@@ -136,6 +137,12 @@ pub fn main() !void {
warn("Expected argument after --zig-lib-dir\n\n", .{});
return usageAndErr(builder, false, stderr_stream);
};
+ } else if (mem.eql(u8, arg, "--debug-log")) {
+ const next_arg = nextArg(args, &arg_idx) orelse {
+ warn("Expected argument after {s}\n\n", .{arg});
+ return usageAndErr(builder, false, stderr_stream);
+ };
+ try debug_log_scopes.append(next_arg);
} else if (mem.eql(u8, arg, "--verbose-tokenize")) {
builder.verbose_tokenize = true;
} else if (mem.eql(u8, arg, "--verbose-ast")) {
@@ -166,6 +173,7 @@ pub fn main() !void {
}
}
+ builder.debug_log_scopes = debug_log_scopes.items;
builder.resolveInstallPrefix(install_prefix, dir_list);
try runBuild(builder);
@@ -261,6 +269,7 @@ fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void
\\ --build-file [file] Override path to build.zig
\\ --cache-dir [path] Override path to zig cache directory
\\ --zig-lib-dir [arg] Override path to Zig lib directory
+ \\ --debug-log [scope] Enable debugging the compiler
\\ --verbose-tokenize Enable compiler debug output for tokenization
\\ --verbose-ast Enable compiler debug output for parsing into an AST
\\ --verbose-link Enable compiler debug output for linking