From d3cbbe0b1e38394de5c4ea6efe9372203092002f Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sun, 5 Mar 2023 16:16:32 -0700 Subject: [PATCH] std.Build.Step: no-op steps report cached if all deps cached --- lib/std/Build/Step.zig | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/std/Build/Step.zig b/lib/std/Build/Step.zig index 1a7fe24e7c..d146ddb259 100644 --- a/lib/std/Build/Step.zig +++ b/lib/std/Build/Step.zig @@ -144,9 +144,16 @@ pub fn getStackTrace(s: *Step) std.builtin.StackTrace { }; } -fn makeNoOp(self: *Step, prog_node: *std.Progress.Node) anyerror!void { - _ = self; +fn makeNoOp(step: *Step, prog_node: *std.Progress.Node) anyerror!void { _ = prog_node; + + var all_cached = true; + + for (step.dependencies.items) |dep| { + all_cached = all_cached and dep.result_cached; + } + + step.result_cached = all_cached; } pub fn cast(step: *Step, comptime T: type) ?*T {