From a5e4fe5487d2ac8d8bafceb6edba8ae2d87aa86c Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 27 May 2024 11:21:04 -0700 Subject: [PATCH] std.Build.Step.Run: account for new environment variable Introduces `disable_zig_progress` which prevents the build runner from assigning the child process a progress node. This is needed for the empty_env test which requires the environment to be completely empty. --- lib/std/Build/Step/Run.zig | 8 +++++++- test/standalone/empty_env/build.zig | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/std/Build/Step/Run.zig b/lib/std/Build/Step/Run.zig index 1e7708120f..1ecc3334c4 100644 --- a/lib/std/Build/Step/Run.zig +++ b/lib/std/Build/Step/Run.zig @@ -23,6 +23,11 @@ cwd: ?Build.LazyPath, /// Override this field to modify the environment, or use setEnvironmentVariable env_map: ?*EnvMap, +/// When `true` prevents `ZIG_PROGRESS` environment variable from being passed +/// to the child process, which otherwise would be used for the child to send +/// progress updates to the parent. +disable_zig_progress: bool, + /// Configures whether the Run step is considered to have side-effects, and also /// whether the Run step will inherit stdio streams, forwarding them to the /// parent process, in which case will require a global lock to prevent other @@ -152,6 +157,7 @@ pub fn create(owner: *std.Build, name: []const u8) *Run { .argv = .{}, .cwd = null, .env_map = null, + .disable_zig_progress = false, .stdio = .infer_from_args, .stdin = .none, .extra_file_dependencies = &.{}, @@ -1235,7 +1241,7 @@ fn spawnChildAndCollect( child.stdin_behavior = .Pipe; } - if (run.stdio != .zig_test) { + if (run.stdio != .zig_test and !run.disable_zig_progress) { child.progress_node = prog_node; } diff --git a/test/standalone/empty_env/build.zig b/test/standalone/empty_env/build.zig index b8e488f830..344e8047bd 100644 --- a/test/standalone/empty_env/build.zig +++ b/test/standalone/empty_env/build.zig @@ -21,6 +21,7 @@ pub fn build(b: *std.Build) void { const run = b.addRunArtifact(main); run.clearEnvironment(); + run.disable_zig_progress = true; test_step.dependOn(&run.step); }