diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2021-11-24 16:14:52 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2021-11-25 12:19:16 +0100 |
| commit | 42a351e099dd41fe96dab4f6dadd277884188f3f (patch) | |
| tree | 7958c3e2e7a1505dd1c2b547e61f1f228641c031 /src/target.zig | |
| parent | 2dcfa486feecc964a1aab6b843ab85c2be1d7a9b (diff) | |
| download | zig-42a351e099dd41fe96dab4f6dadd277884188f3f.tar.gz zig-42a351e099dd41fe96dab4f6dadd277884188f3f.zip | |
infer and match macos sdk version for libc headers
Diffstat (limited to 'src/target.zig')
| -rw-r--r-- | src/target.zig | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/target.zig b/src/target.zig index 6b6ed2fbc5..6f6d9f811d 100644 --- a/src/target.zig +++ b/src/target.zig @@ -5,6 +5,7 @@ pub const ArchOsAbi = struct { arch: std.Target.Cpu.Arch, os: std.Target.Os.Tag, abi: std.Target.Abi, + os_ver: ?std.builtin.Version = null, }; pub const available_libcs = [_]ArchOsAbi{ @@ -14,7 +15,8 @@ pub const available_libcs = [_]ArchOsAbi{ .{ .arch = .aarch64, .os = .linux, .abi = .gnu }, .{ .arch = .aarch64, .os = .linux, .abi = .musl }, .{ .arch = .aarch64, .os = .windows, .abi = .gnu }, - .{ .arch = .aarch64, .os = .macos, .abi = .gnu }, + .{ .arch = .aarch64, .os = .macos, .abi = .gnu, .os_ver = .{ .major = 11, .minor = 0 } }, + .{ .arch = .aarch64, .os = .macos, .abi = .gnu, .os_ver = .{ .major = 12, .minor = 0 } }, .{ .arch = .armeb, .os = .linux, .abi = .gnueabi }, .{ .arch = .armeb, .os = .linux, .abi = .gnueabihf }, .{ .arch = .armeb, .os = .linux, .abi = .musleabi }, @@ -64,7 +66,9 @@ pub const available_libcs = [_]ArchOsAbi{ .{ .arch = .x86_64, .os = .linux, .abi = .gnux32 }, .{ .arch = .x86_64, .os = .linux, .abi = .musl }, .{ .arch = .x86_64, .os = .windows, .abi = .gnu }, - .{ .arch = .x86_64, .os = .macos, .abi = .gnu }, + .{ .arch = .x86_64, .os = .macos, .abi = .gnu, .os_ver = .{ .major = 10, .minor = 0 } }, + .{ .arch = .x86_64, .os = .macos, .abi = .gnu, .os_ver = .{ .major = 11, .minor = 0 } }, + .{ .arch = .x86_64, .os = .macos, .abi = .gnu, .os_ver = .{ .major = 12, .minor = 0 } }, }; pub fn libCGenericName(target: std.Target) [:0]const u8 { @@ -105,6 +109,10 @@ pub fn libCGenericName(target: std.Target) [:0]const u8 { pub fn canBuildLibC(target: std.Target) bool { for (available_libcs) |libc| { if (target.cpu.arch == libc.arch and target.os.tag == libc.os and target.abi == libc.abi) { + if (target.os.tag == .macos) { + const ver = target.os.version_range.semver; + if (ver.min.major != libc.os_ver.?.major) continue; // no match, keep going + } return true; } } |
