diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2017-08-30 14:55:26 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2017-08-30 14:55:26 -0400 |
| commit | 0e9bdb44a6ca022558ed703749353c76e796dc35 (patch) | |
| tree | aeedbc3a20024875139cf892fa6dbdf4f08e35d0 /std/build.zig | |
| parent | 052b4ae9415596e0b6b6c32b9b4f2d3ff8c9e953 (diff) | |
| download | zig-0e9bdb44a6ca022558ed703749353c76e796dc35.tar.gz zig-0e9bdb44a6ca022558ed703749353c76e796dc35.zip | |
test suite cross-compile builds tests for other targets
Diffstat (limited to 'std/build.zig')
| -rw-r--r-- | std/build.zig | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/std/build.zig b/std/build.zig index 072a400b30..a42434da50 100644 --- a/std/build.zig +++ b/std/build.zig @@ -1027,6 +1027,7 @@ pub const TestStep = struct { link_libs: BufSet, name_prefix: []const u8, filter: ?[]const u8, + target: Target, pub fn init(builder: &Builder, root_src: []const u8) -> TestStep { const step_name = builder.fmt("test {}", root_src); @@ -1039,6 +1040,7 @@ pub const TestStep = struct { .name_prefix = "", .filter = null, .link_libs = BufSet.init(builder.allocator), + .target = Target.Native, } } @@ -1062,6 +1064,18 @@ pub const TestStep = struct { self.filter = text; } + pub fn setTarget(self: &TestStep, target_arch: builtin.Arch, target_os: builtin.Os, + target_environ: builtin.Environ) + { + self.target = Target.Cross { + CrossTarget { + .arch = target_arch, + .os = target_os, + .environ = target_environ, + } + }; + } + fn make(step: &Step) -> %void { const self = @fieldParentPtr(TestStep, "step", step); const builder = self.builder; @@ -1082,6 +1096,20 @@ pub const TestStep = struct { builtin.Mode.ReleaseFast => %%zig_args.append("--release-fast"), } + switch (self.target) { + Target.Native => {}, + Target.Cross => |cross_target| { + %%zig_args.append("--target-arch"); + %%zig_args.append(@enumTagName(cross_target.arch)); + + %%zig_args.append("--target-os"); + %%zig_args.append(@enumTagName(cross_target.os)); + + %%zig_args.append("--target-environ"); + %%zig_args.append(@enumTagName(cross_target.environ)); + }, + } + if (self.filter) |filter| { %%zig_args.append("--test-filter"); %%zig_args.append(filter); |
