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 {...@@ -68,6 +68,7 @@ pub const Builder = struct {
68 vcpkg_root: VcpkgRoot,68 vcpkg_root: VcpkgRoot,
69 pkg_config_pkg_list: ?(PkgConfigError![]const PkgConfigPkg) = null,69 pkg_config_pkg_list: ?(PkgConfigError![]const PkgConfigPkg) = null,
70 args: ?[][]const u8 = null,70 args: ?[][]const u8 = null,
71 debug_log_scopes: []const []const u8 = &.{},
7172
72 const PkgConfigError = error{73 const PkgConfigError = error{
73 PkgConfigCrashed,74 PkgConfigCrashed,
...@@ -2334,6 +2335,11 @@ pub const LibExeObjStep = struct {...@@ -2334,6 +2335,11 @@ pub const LibExeObjStep = struct {
2334 try zig_args.append(self.name_prefix);2335 try zig_args.append(self.name_prefix);
2335 }2336 }
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
2337 if (builder.verbose_tokenize) zig_args.append("--verbose-tokenize") catch unreachable;2343 if (builder.verbose_tokenize) zig_args.append("--verbose-tokenize") catch unreachable;
2338 if (builder.verbose_ast) zig_args.append("--verbose-ast") catch unreachable;2344 if (builder.verbose_ast) zig_args.append("--verbose-ast") catch unreachable;
2339 if (builder.verbose_cimport) zig_args.append("--verbose-cimport") catch unreachable;2345 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 {...@@ -51,6 +51,7 @@ pub fn main() !void {
51 defer builder.destroy();51 defer builder.destroy();
5252
53 var targets = ArrayList([]const u8).init(allocator);53 var targets = ArrayList([]const u8).init(allocator);
54 var debug_log_scopes = ArrayList([]const u8).init(allocator);
5455
55 const stderr_stream = io.getStdErr().writer();56 const stderr_stream = io.getStdErr().writer();
56 const stdout_stream = io.getStdOut().writer();57 const stdout_stream = io.getStdOut().writer();
...@@ -136,6 +137,12 @@ pub fn main() !void {...@@ -136,6 +137,12 @@ pub fn main() !void {
136 warn("Expected argument after --zig-lib-dir\n\n", .{});137 warn("Expected argument after --zig-lib-dir\n\n", .{});
137 return usageAndErr(builder, false, stderr_stream);138 return usageAndErr(builder, false, stderr_stream);
138 };139 };
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);
139 } else if (mem.eql(u8, arg, "--verbose-tokenize")) {146 } else if (mem.eql(u8, arg, "--verbose-tokenize")) {
140 builder.verbose_tokenize = true;147 builder.verbose_tokenize = true;
141 } else if (mem.eql(u8, arg, "--verbose-ast")) {148 } else if (mem.eql(u8, arg, "--verbose-ast")) {
...@@ -166,6 +173,7 @@ pub fn main() !void {...@@ -166,6 +173,7 @@ pub fn main() !void {
166 }173 }
167 }174 }
168175
176 builder.debug_log_scopes = debug_log_scopes.items;
169 builder.resolveInstallPrefix(install_prefix, dir_list);177 builder.resolveInstallPrefix(install_prefix, dir_list);
170 try runBuild(builder);178 try runBuild(builder);
171179
...@@ -261,6 +269,7 @@ fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void...@@ -261,6 +269,7 @@ fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void
261 \\ --build-file [file] Override path to build.zig269 \\ --build-file [file] Override path to build.zig
262 \\ --cache-dir [path] Override path to zig cache directory270 \\ --cache-dir [path] Override path to zig cache directory
263 \\ --zig-lib-dir [arg] Override path to Zig lib directory271 \\ --zig-lib-dir [arg] Override path to Zig lib directory
272 \\ --debug-log [scope] Enable debugging the compiler
264 \\ --verbose-tokenize Enable compiler debug output for tokenization273 \\ --verbose-tokenize Enable compiler debug output for tokenization
265 \\ --verbose-ast Enable compiler debug output for parsing into an AST274 \\ --verbose-ast Enable compiler debug output for parsing into an AST
266 \\ --verbose-link Enable compiler debug output for linking275 \\ --verbose-link Enable compiler debug output for linking