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-10 22:11:13+02:00
loga9ff2d56ceccd545c9659b8c2768dbeeaa25dca4
treec75f3253300cb8077d412b5480cefeb0021ceb35
parentddcf6fcdf3452a4a7d55a27e7112e794447120b6

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
......@@ -5628,12 +5628,19 @@ pub fn addCCArgs(
56285628 try argv.appendSlice(&[_][]const u8{ "-target", llvm_triple });
56295629
56305630 switch (target.os.tag) {
5631 .macos => {
5631 .ios, .macos, .tvos, .watchos => |os| {
56325632 try argv.ensureUnusedCapacity(2);
56335633 // Pass the proper -m<os>-version-min argument for darwin.
56345634 const ver = target.os.version_range.semver.min;
5635 argv.appendAssumeCapacity(try std.fmt.allocPrint(arena, "-mmacos-version-min={d}.{d}.{d}", .{
5636 ver.major, ver.minor, ver.patch,
5635 argv.appendAssumeCapacity(try std.fmt.allocPrint(arena, "-m{s}{s}-version-min={d}.{d}.{d}", .{
5636 switch (target.abi) {
5637 .simulator => "-simulator",
5638 else => "",
5639 },
5640 @tagName(os),
5641 ver.major,
5642 ver.minor,
5643 ver.patch,
56375644 }));
56385645 // This avoids a warning that sometimes occurs when
56395646 // providing both a -target argument that contains a
......@@ -5642,23 +5649,6 @@ pub fn addCCArgs(
56425649 // doesn't matter which one gets overridden.
56435650 argv.appendAssumeCapacity("-Wno-overriding-option");
56445651 },
5645 .ios => switch (target.cpu.arch) {
5646 // Pass the proper -m<os>-version-min argument for darwin.
5647 .x86, .x86_64 => {
5648 const ver = target.os.version_range.semver.min;
5649 try argv.append(try std.fmt.allocPrint(
5650 arena,
5651 "-m{s}-simulator-version-min={d}.{d}.{d}",
5652 .{ @tagName(target.os.tag), ver.major, ver.minor, ver.patch },
5653 ));
5654 },
5655 else => {
5656 const ver = target.os.version_range.semver.min;
5657 try argv.append(try std.fmt.allocPrint(arena, "-m{s}-version-min={d}.{d}.{d}", .{
5658 @tagName(target.os.tag), ver.major, ver.minor, ver.patch,
5659 }));
5660 },
5661 },
56625652 else => {},
56635653 }
56645654