diff --git a/build.zig b/build.zig index d6e31ab149..6d03beb5e9 100644 --- a/build.zig +++ b/build.zig @@ -743,7 +743,7 @@ pub fn build(b: *std.Build) !void { prepare_zig0.dependOn(air_gen_result.step); const test_zig0_step = b.step("test-zig0", "Run zig0 C implementation tests"); - addZig0TestStep(b, test_zig0_step, zig0_target, optimize, zig0_cc, zig0_no_exec, zig0_valgrind, zig0_test_timeout, air_gen_result.air_dir); + addZig0TestStep(b, test_zig0_step, zig0_target, optimize, zig0_cc, zig0_no_exec, zig0_valgrind, zig0_test_timeout, air_gen_result); // zig0 standalone executable const zig0_step = b.step("zig0", "Build zig0 standalone executable"); @@ -838,7 +838,7 @@ pub fn build(b: *std.Build) !void { all_zig0.dependOn(&zig0_fmt_check.step); all_zig0.dependOn(lint_zig0); for (zig0_compilers) |compiler| { - addZig0TestStep(b, all_zig0, zig0_target, optimize, compiler, false, zig0_valgrind, zig0_test_timeout, air_gen_result.air_dir); + addZig0TestStep(b, all_zig0, zig0_target, optimize, compiler, false, zig0_valgrind, zig0_test_timeout, air_gen_result); } } @@ -1739,6 +1739,8 @@ fn addAirGen(b: *std.Build, exe_options: *std.Build.Step.Options) AirGenResult { const gen_exe = b.addExecutable(.{ .name = "air_gen", .root_module = gen_mod, + .use_llvm = false, + .use_lld = false, }); // Run generator: air_gen [ ]... @@ -1767,7 +1769,7 @@ fn addZig0TestStep( no_exec: bool, valgrind: bool, test_timeout: ?[]const u8, - air_dir: std.Build.LazyPath, + air_gen: AirGenResult, ) void { // Step 1: Compile Zig test code to .o (cached independently of C objects). // NOTE: test_mod does NOT import zig_internals — stage0 tests are fast. @@ -1781,10 +1783,10 @@ fn addZig0TestStep( test_mod.linkSystemLibrary("c", .{}); // Make pre-computed AIR data available to tests. test_mod.addAnonymousImport("air_tag_names", .{ - .root_source_file = air_dir.path(b, "tag_names.zig"), + .root_source_file = air_gen.air_dir.path(b, "tag_names.zig"), }); test_mod.addAnonymousImport("air_data", .{ - .root_source_file = air_dir.path(b, "air_data.zig"), + .root_source_file = air_gen.air_dir.path(b, "air_data.zig"), }); const test_obj = b.addTest(.{ @@ -1793,6 +1795,7 @@ fn addZig0TestStep( .use_llvm = false, .use_lld = false, }); + test_obj.step.dependOn(air_gen.step); // Step 2: Link test_obj + C objects into final executable. // No more dumper_obj — AIR is pre-computed at build time.