authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-04-10 17:16:44+02:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-04-11 02:19:22+02:00
loga5f4107d3ebb95db82a6703cfc0615e2f6673be7
treeddd3ae02ecd699d623c64a0de04846fe86012d27
parent2a7683933a0304d3cfc051f7299d7d7cbf7c0042
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

Compilation: Pass `-m<os>-version-min=...` to Clang for all applicable Darwin targets.


1 files changed, 10 insertions(+), 20 deletions(-)

src/Compilation.zig+10-20
...@@ -5629,12 +5629,19 @@ pub fn addCCArgs(...@@ -5629,12 +5629,19 @@ pub fn addCCArgs(
5629 try argv.appendSlice(&[_][]const u8{ "-target", llvm_triple });5629 try argv.appendSlice(&[_][]const u8{ "-target", llvm_triple });
56305630
5631 switch (target.os.tag) {5631 switch (target.os.tag) {
5632 .macos => {5632 .ios, .macos, .tvos, .watchos => |os| {
5633 try argv.ensureUnusedCapacity(2);5633 try argv.ensureUnusedCapacity(2);
5634 // Pass the proper -m<os>-version-min argument for darwin.5634 // Pass the proper -m<os>-version-min argument for darwin.
5635 const ver = target.os.version_range.semver.min;5635 const ver = target.os.version_range.semver.min;
5636 argv.appendAssumeCapacity(try std.fmt.allocPrint(arena, "-mmacos-version-min={d}.{d}.{d}", .{5636 argv.appendAssumeCapacity(try std.fmt.allocPrint(arena, "-m{s}{s}-version-min={d}.{d}.{d}", .{
5637 ver.major, ver.minor, ver.patch,5637 switch (target.abi) {
5638 .simulator => "-simulator",
5639 else => "",
5640 },
5641 @tagName(os),
5642 ver.major,
5643 ver.minor,
5644 ver.patch,
5638 }));5645 }));
5639 // This avoids a warning that sometimes occurs when5646 // This avoids a warning that sometimes occurs when
5640 // providing both a -target argument that contains a5647 // providing both a -target argument that contains a
...@@ -5643,23 +5650,6 @@ pub fn addCCArgs(...@@ -5643,23 +5650,6 @@ pub fn addCCArgs(
5643 // doesn't matter which one gets overridden.5650 // doesn't matter which one gets overridden.
5644 argv.appendAssumeCapacity("-Wno-overriding-option");5651 argv.appendAssumeCapacity("-Wno-overriding-option");
5645 },5652 },
5646 .ios => switch (target.cpu.arch) {
5647 // Pass the proper -m<os>-version-min argument for darwin.
5648 .x86, .x86_64 => {
5649 const ver = target.os.version_range.semver.min;
5650 try argv.append(try std.fmt.allocPrint(
5651 arena,
5652 "-m{s}-simulator-version-min={d}.{d}.{d}",
5653 .{ @tagName(target.os.tag), ver.major, ver.minor, ver.patch },
5654 ));
5655 },
5656 else => {
5657 const ver = target.os.version_range.semver.min;
5658 try argv.append(try std.fmt.allocPrint(arena, "-m{s}-version-min={d}.{d}.{d}", .{
5659 @tagName(target.os.tag), ver.major, ver.minor, ver.patch,
5660 }));
5661 },
5662 },
5663 else => {},5653 else => {},
5664 }5654 }
56655655