diff options
Diffstat (limited to 'lib/std')
| -rw-r--r-- | lib/std/build.zig | 6 | ||||
| -rw-r--r-- | lib/std/special/build_runner.zig | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/std/build.zig b/lib/std/build.zig index 6575e057e8..4cbf6ea67a 100644 --- a/lib/std/build.zig +++ b/lib/std/build.zig @@ -45,6 +45,7 @@ pub const Builder = struct { verbose_llvm_ir: bool, verbose_cimport: bool, verbose_llvm_cpu_features: bool, + color: enum { auto, on, off } = .auto, invalid_user_input: bool, zig_exe: []const u8, default_step: *Step, @@ -1946,6 +1947,11 @@ pub const LibExeObjStep = struct { }; zig_args.append(cmd) catch unreachable; + if (builder.color != .auto) { + try zig_args.append("--color"); + try zig_args.append(@tagName(builder.color)); + } + if (self.root_src) |root_src| try zig_args.append(root_src.getPath(builder)); var prev_has_extra_flags = false; diff --git a/lib/std/special/build_runner.zig b/lib/std/special/build_runner.zig index 43d6b96536..f861d3159b 100644 --- a/lib/std/special/build_runner.zig +++ b/lib/std/special/build_runner.zig @@ -82,6 +82,15 @@ pub fn main() !void { return usageAndErr(builder, false, stderr_stream); }; builder.addSearchPrefix(search_prefix); + } else if (mem.eql(u8, arg, "--color")) { + const next_arg = nextArg(args, &arg_idx) orelse { + warn("expected [auto|on|off] after --color", .{}); + return usageAndErr(builder, false, stderr_stream); + }; + builder.color = std.meta.stringToEnum(@TypeOf(builder.color), next_arg) orelse { + warn("expected [auto|on|off] after --color, found '{}'", .{next_arg}); + return usageAndErr(builder, false, stderr_stream); + }; } else if (mem.eql(u8, arg, "--override-lib-dir")) { builder.override_lib_dir = nextArg(args, &arg_idx) orelse { warn("Expected argument after --override-lib-dir\n\n", .{}); @@ -171,6 +180,7 @@ fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void \\ --verbose Print commands before executing them \\ --prefix [path] Override default install prefix \\ --search-prefix [path] Add a path to look for binaries, libraries, headers + \\ --color [auto|off|on] Enable or disable colored error messages \\ \\Project-Specific Options: \\ |
