| ... | @@ -2,6 +2,8 @@ const std = @import("std"); | ... | @@ -2,6 +2,8 @@ const std = @import("std"); |
| 2 | const debug = std.debug; | 2 | const debug = std.debug; |
| 3 | const warn = debug.warn; | 3 | const warn = debug.warn; |
| 4 | const build = std.build; | 4 | const build = std.build; |
| | 5 | pub const Target = build.Target; |
| | 6 | pub const CrossTarget = build.CrossTarget; |
| 5 | const Buffer = std.Buffer; | 7 | const Buffer = std.Buffer; |
| 6 | const io = std.io; | 8 | const io = std.io; |
| 7 | const fs = std.fs; | 9 | const fs = std.fs; |
| ... | @@ -20,24 +22,18 @@ const runtime_safety = @import("runtime_safety.zig"); | ... | @@ -20,24 +22,18 @@ const runtime_safety = @import("runtime_safety.zig"); |
| 20 | const translate_c = @import("translate_c.zig"); | 22 | const translate_c = @import("translate_c.zig"); |
| 21 | const gen_h = @import("gen_h.zig"); | 23 | const gen_h = @import("gen_h.zig"); |
| 22 | | 24 | |
| 23 | const TestTarget = struct { | 25 | const test_targets = [_]CrossTarget{ |
| 24 | os: builtin.Os, | 26 | CrossTarget{ |
| 25 | arch: builtin.Arch, | | |
| 26 | abi: builtin.Abi, | | |
| 27 | }; | | |
| 28 | | | |
| 29 | const test_targets = [_]TestTarget{ | | |
| 30 | TestTarget{ | | |
| 31 | .os = .linux, | 27 | .os = .linux, |
| 32 | .arch = .x86_64, | 28 | .arch = .x86_64, |
| 33 | .abi = .gnu, | 29 | .abi = .gnu, |
| 34 | }, | 30 | }, |
| 35 | TestTarget{ | 31 | CrossTarget{ |
| 36 | .os = .macosx, | 32 | .os = .macosx, |
| 37 | .arch = .x86_64, | 33 | .arch = .x86_64, |
| 38 | .abi = .gnu, | 34 | .abi = .gnu, |
| 39 | }, | 35 | }, |
| 40 | TestTarget{ | 36 | CrossTarget{ |
| 41 | .os = .windows, | 37 | .os = .windows, |
| 42 | .arch = .x86_64, | 38 | .arch = .x86_64, |
| 43 | .abi = .msvc, | 39 | .abi = .msvc, |
| ... | @@ -568,6 +564,7 @@ pub const CompileErrorContext = struct { | ... | @@ -568,6 +564,7 @@ pub const CompileErrorContext = struct { |
| 568 | link_libc: bool, | 564 | link_libc: bool, |
| 569 | is_exe: bool, | 565 | is_exe: bool, |
| 570 | is_test: bool, | 566 | is_test: bool, |
| | 567 | target: Target = .Native, |
| 571 | | 568 | |
| 572 | const SourceFile = struct { | 569 | const SourceFile = struct { |
| 573 | filename: []const u8, | 570 | filename: []const u8, |
| ... | @@ -655,6 +652,14 @@ pub const CompileErrorContext = struct { | ... | @@ -655,6 +652,14 @@ pub const CompileErrorContext = struct { |
| 655 | zig_args.append("--output-dir") catch unreachable; | 652 | zig_args.append("--output-dir") catch unreachable; |
| 656 | zig_args.append(b.pathFromRoot(b.cache_root)) catch unreachable; | 653 | zig_args.append(b.pathFromRoot(b.cache_root)) catch unreachable; |
| 657 | | 654 | |
| | 655 | switch (self.case.target) { |
| | 656 | .Native => {}, |
| | 657 | .Cross => { |
| | 658 | try zig_args.append("-target"); |
| | 659 | try zig_args.append(try self.case.target.zigTriple(b.allocator)); |
| | 660 | }, |
| | 661 | } |
| | 662 | |
| 658 | switch (self.build_mode) { | 663 | switch (self.build_mode) { |
| 659 | Mode.Debug => {}, | 664 | Mode.Debug => {}, |
| 660 | Mode.ReleaseSafe => zig_args.append("--release-safe") catch unreachable, | 665 | Mode.ReleaseSafe => zig_args.append("--release-safe") catch unreachable, |