authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-11-24 23:08:16-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2021-11-24 23:08:16-07:00
log6b87f0dc56b82c2f27d70271626480d21a4d0d66
treeba5f9b2d9ee16e8b981bdbe2c913a0e11b4e131f
parentb560f46c871f234a8b2f762c03984eef963f360a

build system: add --debug-log advanced option to build runner


2 files changed, 15 insertions(+), 0 deletions(-)

lib/std/build.zig+6
......@@ -68,6 +68,7 @@ pub const Builder = struct {
6868 vcpkg_root: VcpkgRoot,
6969 pkg_config_pkg_list: ?(PkgConfigError![]const PkgConfigPkg) = null,
7070 args: ?[][]const u8 = null,
71 debug_log_scopes: []const []const u8 = &.{},
7172
7273 const PkgConfigError = error{
7374 PkgConfigCrashed,
......@@ -2334,6 +2335,11 @@ pub const LibExeObjStep = struct {
23342335 try zig_args.append(self.name_prefix);
23352336 }
23362337
2338 for (builder.debug_log_scopes) |log_scope| {
2339 try zig_args.append("--debug-log");
2340 try zig_args.append(log_scope);
2341 }
2342
23372343 if (builder.verbose_tokenize) zig_args.append("--verbose-tokenize") catch unreachable;
23382344 if (builder.verbose_ast) zig_args.append("--verbose-ast") catch unreachable;
23392345 if (builder.verbose_cimport) zig_args.append("--verbose-cimport") catch unreachable;
lib/std/special/build_runner.zig+9
......@@ -51,6 +51,7 @@ pub fn main() !void {
5151 defer builder.destroy();
5252
5353 var targets = ArrayList([]const u8).init(allocator);
54 var debug_log_scopes = ArrayList([]const u8).init(allocator);
5455
5556 const stderr_stream = io.getStdErr().writer();
5657 const stdout_stream = io.getStdOut().writer();
......@@ -136,6 +137,12 @@ pub fn main() !void {
136137 warn("Expected argument after --zig-lib-dir\n\n", .{});
137138 return usageAndErr(builder, false, stderr_stream);
138139 };
140 } else if (mem.eql(u8, arg, "--debug-log")) {
141 const next_arg = nextArg(args, &arg_idx) orelse {
142 warn("Expected argument after {s}\n\n", .{arg});
143 return usageAndErr(builder, false, stderr_stream);
144 };
145 try debug_log_scopes.append(next_arg);
139146 } else if (mem.eql(u8, arg, "--verbose-tokenize")) {
140147 builder.verbose_tokenize = true;
141148 } else if (mem.eql(u8, arg, "--verbose-ast")) {
......@@ -166,6 +173,7 @@ pub fn main() !void {
166173 }
167174 }
168175
176 builder.debug_log_scopes = debug_log_scopes.items;
169177 builder.resolveInstallPrefix(install_prefix, dir_list);
170178 try runBuild(builder);
171179
......@@ -261,6 +269,7 @@ fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void
261269 \\ --build-file [file] Override path to build.zig
262270 \\ --cache-dir [path] Override path to zig cache directory
263271 \\ --zig-lib-dir [arg] Override path to Zig lib directory
272 \\ --debug-log [scope] Enable debugging the compiler
264273 \\ --verbose-tokenize Enable compiler debug output for tokenization
265274 \\ --verbose-ast Enable compiler debug output for parsing into an AST
266275 \\ --verbose-link Enable compiler debug output for linking