diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-10-30 15:44:58 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-10-30 15:44:58 -0700 |
| commit | 9b54c9dee8a571f1c821b3eb4ee3d2c713cf63fa (patch) | |
| tree | f24ec417b12c1a964eee9a15adbc5454adcd7332 /src/main.zig | |
| parent | 8caed4846018cd185b632bc884c7df81b8dd39dc (diff) | |
| download | zig-9b54c9dee8a571f1c821b3eb4ee3d2c713cf63fa.tar.gz zig-9b54c9dee8a571f1c821b3eb4ee3d2c713cf63fa.zip | |
zig test: forward target CLI args to zig run when using -ofmt=c
Previously, if you used `zig test -ofmt=c -target foobar` then Zig would
try to compile the generated C code with the native target instead of
"foobar".
With this change, `--test-cmd` with e.g. QEMU still won't work, but at
least the binary will get compiled for the correct target.
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main.zig b/src/main.zig index 6bde852eee..762735dd8b 100644 --- a/src/main.zig +++ b/src/main.zig @@ -3021,6 +3021,17 @@ fn buildOutputType( try test_exec_args.append(self_exe_path); try test_exec_args.append("run"); if (link_libc) try test_exec_args.append("-lc"); + if (!mem.eql(u8, target_arch_os_abi, "native")) { + try test_exec_args.append("-target"); + try test_exec_args.append(target_arch_os_abi); + } + if (target_mcpu) |mcpu| { + try test_exec_args.append(try std.fmt.allocPrint(arena, "-mcpu={s}", .{mcpu})); + } + if (target_dynamic_linker) |dl| { + try test_exec_args.append("--dynamic-linker"); + try test_exec_args.append(dl); + } try test_exec_args.append(c_code_path); } |
