aboutsummaryrefslogtreecommitdiff
path: root/lib/build_runner.zig
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-03-03 15:28:38 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-03-15 10:48:13 -0700
commitd695f36e70f162e4e84087df1ccad5430e53d786 (patch)
treee6bc313e996099c9093df2a2804f4a00bd5f4060 /lib/build_runner.zig
parent41a5ad28c9a651efd2822f43486a71ca48ace726 (diff)
downloadzig-d695f36e70f162e4e84087df1ccad5430e53d786.tar.gz
zig-d695f36e70f162e4e84087df1ccad5430e53d786.zip
build runner supports reporting cached status and duration
Diffstat (limited to 'lib/build_runner.zig')
-rw-r--r--lib/build_runner.zig36
1 files changed, 35 insertions, 1 deletions
diff --git a/lib/build_runner.zig b/lib/build_runner.zig
index aa846ce799..1c07efd944 100644
--- a/lib/build_runner.zig
+++ b/lib/build_runner.zig
@@ -501,8 +501,42 @@ fn printTreeStep(
.success => {
try ttyconf.setColor(stderr, .Green);
- try stderr.writeAll(" success\n");
+ if (s.result_cached) {
+ try stderr.writeAll(" cached");
+ } else {
+ try stderr.writeAll(" success");
+ }
try ttyconf.setColor(stderr, .Reset);
+ if (s.result_duration_ns) |ns| {
+ try ttyconf.setColor(stderr, .Dim);
+ if (ns >= std.time.ns_per_min) {
+ try stderr.writer().print(" {d}m", .{ns / std.time.ns_per_min});
+ } else if (ns >= std.time.ns_per_s) {
+ try stderr.writer().print(" {d}s", .{ns / std.time.ns_per_s});
+ } else if (ns >= std.time.ns_per_ms) {
+ try stderr.writer().print(" {d}ms", .{ns / std.time.ns_per_ms});
+ } else {
+ try stderr.writer().print(" {d}ns", .{ns});
+ }
+ try ttyconf.setColor(stderr, .Reset);
+ }
+ if (s.result_peak_rss != 0) {
+ const rss = s.result_peak_rss;
+ try ttyconf.setColor(stderr, .Dim);
+ if (rss >= 1000_000_000_000) {
+ try stderr.writer().print(" {d}G MaxRSS", .{rss / 1000_000_000_000});
+ } else if (rss >= 1000_000_000) {
+ try stderr.writer().print(" {d}M MaxRSS", .{rss / 1000_000_000});
+ } else if (rss >= 1000_000) {
+ try stderr.writer().print(" {d}M MaxRSS", .{rss / 1000_000});
+ } else if (rss >= 1000) {
+ try stderr.writer().print(" {d}K MaxRSS", .{rss / 1000});
+ } else {
+ try stderr.writer().print(" {d}B MaxRSS", .{rss});
+ }
+ try ttyconf.setColor(stderr, .Reset);
+ }
+ try stderr.writeAll("\n");
},
.skipped => {