authorgravatar for mail@isaacfreund.comIsaac Freund <mail@isaacfreund.com> 2020-10-13 20:06:03+02:00
committergravatar for mail@isaacfreund.comIsaac Freund <mail@isaacfreund.com> 2020-10-13 20:06:03+02:00
logf01c3150c19fa3d6c605cc1940f70cce303c5997
tree6681df7149b1e9ff8c6fc64d41365ab0cf0c8f12
parentea45ee54843b10a433bb223caa9706d8253e3222
signaturelock-open Commit is signed but in an unrecognized format.

std/build: support --color


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

lib/std/build.zig+6
...@@ -45,6 +45,7 @@ pub const Builder = struct {...@@ -45,6 +45,7 @@ pub const Builder = struct {
45 verbose_llvm_ir: bool,45 verbose_llvm_ir: bool,
46 verbose_cimport: bool,46 verbose_cimport: bool,
47 verbose_llvm_cpu_features: bool,47 verbose_llvm_cpu_features: bool,
48 color: enum { auto, on, off } = .auto,
48 invalid_user_input: bool,49 invalid_user_input: bool,
49 zig_exe: []const u8,50 zig_exe: []const u8,
50 default_step: *Step,51 default_step: *Step,
...@@ -1946,6 +1947,11 @@ pub const LibExeObjStep = struct {...@@ -1946,6 +1947,11 @@ pub const LibExeObjStep = struct {
1946 };1947 };
1947 zig_args.append(cmd) catch unreachable;1948 zig_args.append(cmd) catch unreachable;
19481949
1950 if (builder.color != .auto) {
1951 try zig_args.append("--color");
1952 try zig_args.append(@tagName(builder.color));
1953 }
1954
1949 if (self.root_src) |root_src| try zig_args.append(root_src.getPath(builder));1955 if (self.root_src) |root_src| try zig_args.append(root_src.getPath(builder));
19501956
1951 var prev_has_extra_flags = false;1957 var prev_has_extra_flags = false;
lib/std/special/build_runner.zig+10
...@@ -82,6 +82,15 @@ pub fn main() !void {...@@ -82,6 +82,15 @@ pub fn main() !void {
82 return usageAndErr(builder, false, stderr_stream);82 return usageAndErr(builder, false, stderr_stream);
83 };83 };
84 builder.addSearchPrefix(search_prefix);84 builder.addSearchPrefix(search_prefix);
85 } else if (mem.eql(u8, arg, "--color")) {
86 const next_arg = nextArg(args, &arg_idx) orelse {
87 warn("expected [auto|on|off] after --color", .{});
88 return usageAndErr(builder, false, stderr_stream);
89 };
90 builder.color = std.meta.stringToEnum(@TypeOf(builder.color), next_arg) orelse {
91 warn("expected [auto|on|off] after --color, found '{}'", .{next_arg});
92 return usageAndErr(builder, false, stderr_stream);
93 };
85 } else if (mem.eql(u8, arg, "--override-lib-dir")) {94 } else if (mem.eql(u8, arg, "--override-lib-dir")) {
86 builder.override_lib_dir = nextArg(args, &arg_idx) orelse {95 builder.override_lib_dir = nextArg(args, &arg_idx) orelse {
87 warn("Expected argument after --override-lib-dir\n\n", .{});96 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...@@ -171,6 +180,7 @@ fn usage(builder: *Builder, already_ran_build: bool, out_stream: anytype) !void
171 \\ --verbose Print commands before executing them180 \\ --verbose Print commands before executing them
172 \\ --prefix [path] Override default install prefix181 \\ --prefix [path] Override default install prefix
173 \\ --search-prefix [path] Add a path to look for binaries, libraries, headers182 \\ --search-prefix [path] Add a path to look for binaries, libraries, headers
183 \\ --color [auto|off|on] Enable or disable colored error messages
174 \\184 \\
175 \\Project-Specific Options:185 \\Project-Specific Options:
176 \\186 \\