Force Xcode SDK instead of CLI SDK?
Aaron Madlon-Kay
amake at macports.org
Fri Nov 20 14:20:12 UTC 2020
> 1. Your configuration value for developer_dir in macports.conf (I'm
> assuming it's the default).
It's the default (commented out in macports.conf).
> 2. Whether
> ${developer_dir}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk
> exists on your system.
I take ${developer_dir} to be
/Applications/Xcode.app/Contents/Developer, in which case it does not
exist:
% ls -al /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
total 0
drwxr-xr-x 5 root wheel 160 Nov 13 13:55 .
drwxr-xr-x 6 root wheel 192 Oct 24 11:20 ..
drwxr-xr-x 5 root wheel 160 Oct 20 05:33 DriverKit20.0.sdk
drwxr-xr-x 7 root wheel 224 Nov 13 13:56 MacOSX.sdk
lrwxr-xr-x 1 root wheel 10 Nov 13 13:52 MacOSX11.0.sdk -> MacOSX.sdk
> I'm guessing your Xcode is new enough to only ship the MacOSX11.0.sdk in
> Xcode's developer dir? That would then run through the check at [1] and
> continue below, which would run
>
> xcrun --sdk macosx10.15 --show-sdk-path
>
> which would fail when you only have the 11.0 one in Xcode.
My Xcode is 12.2 12B45b, update-installed over many previous
iterations from the app store. The invocation does indeed fail:
% xcrun --sdk macosx10.15 --show-sdk-path
xcodebuild: error: SDK "macosx10.15" cannot be located.
xcodebuild: error: SDK "macosx10.15" cannot be located.
xcrun: error: unable to lookup item 'Path' in SDK 'macosx10.15'
> That would then bring you to [2] which as a last resort tries to find
> the matching MacOSX10.15.sdk in the command line tools path before
> checking for the unversioned one (which would be a symlink to 11.0) in
> Xcode.
>
> Maybe we shouldn't run [2] when `use_xcode yes` is set, and rather
> prefer the unversioned SDK from Xcode than the matching SDK from the
> command line tools.
Seems reasonable to me.
Thanks for stepping through the logic for me.
-Aaron
More information about the macports-dev
mailing list