zig

fork of https://codeberg.org/ziglang/zig
Log | Tree | Refs | README | LICENSE

commit a5e4fe5487d2ac8d8bafceb6edba8ae2d87aa86c (tree)
parent 0937992a14e9557da7d753f3c38070fe57583e33
Author: Andrew Kelley <andrew@ziglang.org>
Date:   Mon, 27 May 2024 11:21:04 -0700

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.

Diffstat:
Mlib/std/Build/Step/Run.zig | 8+++++++-
Mtest/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 @@ -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 @@ -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); }