mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 05:44:20 +00:00
Make -freference-trace work without colors
Currently -freference-trace only works when running from a terminal. This is annoying if you're running in another environment or if you redirect the output. But -freference-trace also works fine without the color, so change how the build runner is interpreting this option.
This commit is contained in:
parent
e4c049e410
commit
3348478fc3
3 changed files with 14 additions and 19 deletions
|
|
@ -733,7 +733,7 @@ fn runStepNames(
|
|||
if (run.prominent_compile_errors and total_compile_errors > 0) {
|
||||
for (step_stack.keys()) |s| {
|
||||
if (s.result_error_bundle.errorMessageCount() > 0) {
|
||||
s.result_error_bundle.renderToStdErr(renderOptions(ttyconf));
|
||||
s.result_error_bundle.renderToStdErr(.{ .ttyconf = ttyconf, .include_reference_trace = (b.reference_trace orelse 0) > 0 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1112,7 +1112,11 @@ fn workerMakeOneStep(
|
|||
defer std.debug.unlockStdErr();
|
||||
|
||||
const gpa = b.allocator;
|
||||
printErrorMessages(gpa, s, run.ttyconf, run.stderr, run.prominent_compile_errors) catch {};
|
||||
const options: std.zig.ErrorBundle.RenderOptions = .{
|
||||
.ttyconf = run.ttyconf,
|
||||
.include_reference_trace = (b.reference_trace orelse 0) > 0,
|
||||
};
|
||||
printErrorMessages(gpa, s, options, run.stderr, run.prominent_compile_errors) catch {};
|
||||
}
|
||||
|
||||
handle_result: {
|
||||
|
|
@ -1168,7 +1172,7 @@ fn workerMakeOneStep(
|
|||
pub fn printErrorMessages(
|
||||
gpa: Allocator,
|
||||
failing_step: *Step,
|
||||
ttyconf: std.io.tty.Config,
|
||||
options: std.zig.ErrorBundle.RenderOptions,
|
||||
stderr: File,
|
||||
prominent_compile_errors: bool,
|
||||
) !void {
|
||||
|
|
@ -1183,6 +1187,7 @@ pub fn printErrorMessages(
|
|||
}
|
||||
|
||||
// Now, `step_stack` has the subtree that we want to print, in reverse order.
|
||||
const ttyconf = options.ttyconf;
|
||||
try ttyconf.setColor(stderr, .dim);
|
||||
var indent: usize = 0;
|
||||
while (step_stack.popOrNull()) |s| : (indent += 1) {
|
||||
|
|
@ -1208,8 +1213,9 @@ pub fn printErrorMessages(
|
|||
}
|
||||
}
|
||||
|
||||
if (!prominent_compile_errors and failing_step.result_error_bundle.errorMessageCount() > 0)
|
||||
try failing_step.result_error_bundle.renderToWriter(renderOptions(ttyconf), stderr.writer());
|
||||
if (!prominent_compile_errors and failing_step.result_error_bundle.errorMessageCount() > 0) {
|
||||
try failing_step.result_error_bundle.renderToWriter(options, stderr.writer());
|
||||
}
|
||||
|
||||
for (failing_step.result_error_msgs.items) |msg| {
|
||||
try ttyconf.setColor(stderr, .red);
|
||||
|
|
@ -1410,14 +1416,6 @@ fn get_tty_conf(color: Color, stderr: File) std.io.tty.Config {
|
|||
};
|
||||
}
|
||||
|
||||
fn renderOptions(ttyconf: std.io.tty.Config) std.zig.ErrorBundle.RenderOptions {
|
||||
return .{
|
||||
.ttyconf = ttyconf,
|
||||
.include_source_line = ttyconf != .no_color,
|
||||
.include_reference_trace = ttyconf != .no_color,
|
||||
};
|
||||
}
|
||||
|
||||
fn fatalWithHint(comptime f: []const u8, args: anytype) noreturn {
|
||||
std.debug.print(f ++ "\n access the help menu with 'zig build -h'\n", args);
|
||||
process.exit(1);
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ fn rebuildTestsWorkerRunFallible(run: *Step.Run, ttyconf: std.io.tty.Config, par
|
|||
if (show_error_msgs or show_compile_errors or show_stderr) {
|
||||
std.debug.lockStdErr();
|
||||
defer std.debug.unlockStdErr();
|
||||
build_runner.printErrorMessages(gpa, &compile.step, ttyconf, stderr, false) catch {};
|
||||
build_runner.printErrorMessages(gpa, &compile.step, .{ .ttyconf = ttyconf }, stderr, false) catch {};
|
||||
}
|
||||
|
||||
const rebuilt_bin_path = result catch |err| switch (err) {
|
||||
|
|
@ -155,7 +155,7 @@ fn fuzzWorkerRun(
|
|||
const stderr = std.io.getStdErr();
|
||||
std.debug.lockStdErr();
|
||||
defer std.debug.unlockStdErr();
|
||||
build_runner.printErrorMessages(gpa, &run.step, ttyconf, stderr, false) catch {};
|
||||
build_runner.printErrorMessages(gpa, &run.step, .{ .ttyconf = ttyconf }, stderr, false) catch {};
|
||||
return;
|
||||
},
|
||||
else => {
|
||||
|
|
|
|||
|
|
@ -54,11 +54,8 @@ pub const Color = enum {
|
|||
}
|
||||
|
||||
pub fn renderOptions(color: Color) std.zig.ErrorBundle.RenderOptions {
|
||||
const ttyconf = get_tty_conf(color);
|
||||
return .{
|
||||
.ttyconf = ttyconf,
|
||||
.include_source_line = ttyconf != .no_color,
|
||||
.include_reference_trace = ttyconf != .no_color,
|
||||
.ttyconf = get_tty_conf(color),
|
||||
};
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue