aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Lugg <mlugg@mlugg.co.uk>2025-05-21 10:33:30 +0100
committerGitHub <noreply@github.com>2025-05-21 10:33:30 +0100
commitef92c156b5ce1fade3106fc0d79af36bb4409246 (patch)
tree1331b959b7cbfca6cc222426a56234317a94af97
parentf925e1379aa53228610df9b7ffc3d87dbcce0dbb (diff)
parentcdba1d591aae2f5ac5dcd5ae186f5696f218710c (diff)
downloadzig-ef92c156b5ce1fade3106fc0d79af36bb4409246.tar.gz
zig-ef92c156b5ce1fade3106fc0d79af36bb4409246.zip
Merge pull request #23946 from mlugg/build-step-run-cwd
std.Build.Step.Run: inherit build runner cwd
-rw-r--r--lib/std/Build/Step/Run.zig3
-rw-r--r--test/standalone/options/build.zig2
-rw-r--r--test/tests.zig27
3 files changed, 18 insertions, 14 deletions
diff --git a/lib/std/Build/Step/Run.zig b/lib/std/Build/Step/Run.zig
index eede464ab6..b7ad1307fb 100644
--- a/lib/std/Build/Step/Run.zig
+++ b/lib/std/Build/Step/Run.zig
@@ -1334,9 +1334,6 @@ fn spawnChildAndCollect(
var child = std.process.Child.init(argv, arena);
if (run.cwd) |lazy_cwd| {
child.cwd = lazy_cwd.getPath2(b, &run.step);
- } else {
- child.cwd = b.build_root.path;
- child.cwd_dir = b.build_root.handle;
}
child.env_map = run.env_map orelse &b.graph.env_map;
child.request_resource_usage_statistics = true;
diff --git a/test/standalone/options/build.zig b/test/standalone/options/build.zig
index 07efea2a7b..5f1e496c4b 100644
--- a/test/standalone/options/build.zig
+++ b/test/standalone/options/build.zig
@@ -8,7 +8,7 @@ pub fn build(b: *std.Build) void {
}) });
const options = b.addOptions();
- main.addOptions("build_options", options);
+ main.root_module.addOptions("build_options", options);
options.addOption(bool, "bool_true", b.option(bool, "bool_true", "t").?);
options.addOption(bool, "bool_false", b.option(bool, "bool_false", "f").?);
options.addOption(u32, "int", b.option(u32, "int", "i").?);
diff --git a/test/tests.zig b/test/tests.zig
index 04c89444df..a25d3527c0 100644
--- a/test/tests.zig
+++ b/test/tests.zig
@@ -1657,16 +1657,23 @@ pub fn addCliTests(b: *std.Build) *Step {
}
{
- // TODO this should move to become a CLI test rather than standalone
- // cases.addBuildFile("test/standalone/options/build.zig", .{
- // .extra_argv = &.{
- // "-Dbool_true",
- // "-Dbool_false=false",
- // "-Dint=1234",
- // "-De=two",
- // "-Dstring=hello",
- // },
- // });
+ const run_test = b.addSystemCommand(&.{
+ b.graph.zig_exe,
+ "build",
+ "test",
+ "-Dbool_true",
+ "-Dbool_false=false",
+ "-Dint=1234",
+ "-De=two",
+ "-Dstring=hello",
+ });
+ run_test.addArg("--build-file");
+ run_test.addFileArg(b.path("test/standalone/options/build.zig"));
+ run_test.addArg("--cache-dir");
+ run_test.addFileArg(.{ .cwd_relative = b.cache_root.join(b.allocator, &.{}) catch @panic("OOM") });
+ run_test.setName("test build options");
+
+ step.dependOn(&run_test.step);
}
return step;