From 5e7b09ce9fbc95ec9fb9e277d262b9b5a5aa1917 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Sat, 18 Feb 2023 11:31:31 -0700 Subject: [PATCH] std.Build.RunStep: fix default caching logic RunStep is supposed to auto-detect whether the intend is for side-effects or for producing an output file. The auto-detection logic was incorrect, and this commit fixes it. I tested this manually locally. Automated testing will require a more significant investment in the test harness, which I will work on in a future enhancement. closes #14666 --- lib/std/Build/RunStep.zig | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/std/Build/RunStep.zig b/lib/std/Build/RunStep.zig index 5bc271409a..d3f48e4e87 100644 --- a/lib/std/Build/RunStep.zig +++ b/lib/std/Build/RunStep.zig @@ -188,6 +188,10 @@ fn stdIoActionToBehavior(action: StdIoAction) std.ChildProcess.StdIo { } fn needOutputCheck(self: RunStep) bool { + switch (self.condition) { + .always => return false, + .output_outdated => {}, + } if (self.extra_file_dependencies.len > 0) return true; for (self.argv.items) |arg| switch (arg) { @@ -195,10 +199,7 @@ fn needOutputCheck(self: RunStep) bool { else => continue, }; - return switch (self.condition) { - .always => false, - .output_outdated => true, - }; + return false; } fn make(step: *Step) !void {