mirror of
https://github.com/ziglang/zig.git
synced 2026-02-21 08:45:52 +00:00
Autofetch macOS SDK if native target on macOS only
This means that I am purposefully regressing linking iOS and related which will require manual specification of the sysroot path, etc.
This commit is contained in:
parent
c42439dff9
commit
1954cdc106
@ -962,15 +962,17 @@ pub fn create(gpa: *Allocator, options: InitOptions) !*Compilation {
|
||||
break :blk false;
|
||||
};
|
||||
|
||||
const darwin_can_use_system_sdk = blk: {
|
||||
const darwin_use_system_sdk = blk: {
|
||||
if (comptime !builtin.target.isDarwin()) break :blk false;
|
||||
break :blk builtin.os.tag == .macos and options.target.isDarwin();
|
||||
if (!options.is_native_os) break :blk false;
|
||||
if (builtin.os.tag != .macos or !options.target.isDarwin()) break :blk false;
|
||||
break :blk options.frameworks.len > 0 or options.framework_dirs.len > 0;
|
||||
};
|
||||
|
||||
const sysroot = blk: {
|
||||
if (options.sysroot) |sysroot| {
|
||||
break :blk sysroot;
|
||||
} else if (darwin_can_use_system_sdk) {
|
||||
} else if (darwin_use_system_sdk) {
|
||||
break :blk try std.zig.system.darwin.getSDKPath(arena, options.target);
|
||||
} else {
|
||||
break :blk null;
|
||||
|
||||
12
src/main.zig
12
src/main.zig
@ -1848,11 +1848,7 @@ fn buildOutputType(
|
||||
want_native_include_dirs = true;
|
||||
}
|
||||
|
||||
const is_darwin_on_darwin = (comptime builtin.target.isDarwin()) and cross_target.isDarwin();
|
||||
|
||||
if (sysroot == null and (cross_target.isNativeOs() or is_darwin_on_darwin) and
|
||||
(system_libs.count() != 0 or want_native_include_dirs))
|
||||
{
|
||||
if (sysroot == null and cross_target.isNativeOs() and (system_libs.count() != 0 or want_native_include_dirs)) {
|
||||
const paths = std.zig.system.NativePaths.detect(arena, target_info) catch |err| {
|
||||
fatal("unable to detect native system paths: {s}", .{@errorName(err)});
|
||||
};
|
||||
@ -1861,12 +1857,6 @@ fn buildOutputType(
|
||||
}
|
||||
|
||||
const has_sysroot = if (comptime builtin.target.isDarwin()) outer: {
|
||||
const should_get_sdk_path = if (cross_target.isNativeOs() and target_info.target.os.tag == .macos) inner: {
|
||||
const min = target_info.target.os.getVersionRange().semver.min;
|
||||
const at_least_mojave = min.major >= 11 or (min.major >= 10 and min.minor >= 14);
|
||||
break :inner at_least_mojave;
|
||||
} else true;
|
||||
if (!should_get_sdk_path) break :outer false;
|
||||
if (try std.zig.system.darwin.getSDKPath(arena, target_info.target)) |sdk_path| {
|
||||
try clang_argv.ensureUnusedCapacity(2);
|
||||
clang_argv.appendAssumeCapacity("-isysroot");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user