mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
Make the Mac SDK detection in build.sh more robust
When trying to build on Big Sur, the xcode command-line tools install are installed in /Library/Developer/CommandLineTools/SDKs, and as of Xcode 12.5, it does not include a 10.x version of SDK. This changes it to search in the location of the command-line tools SDK for a 10.x version, and if it can't find a 10.x version it will find an explicit 11.x version of the SDK to use because it is conceivable that in the near future Apple will stop installing any 10.x SDK's as part of the command-line tool installer. If the SDK can't be found, the build script will exit now instead of continuing with an unset BASESDK version that causes a later failure. Signed-off-by: Ryan Gardner <ryan.gardner@coxautoinc.com>
This commit is contained in:
parent
2d734c529b
commit
effd0dbae8
1 changed files with 14 additions and 2 deletions
|
@ -147,6 +147,8 @@ fi
|
|||
if [ "$PLATFORM" = Darwin ] ; then
|
||||
if [ -d /Developer/SDKs ] ; then
|
||||
SDKROOT=/Developer/SDKs
|
||||
elif [ -d /Library/Developer/CommandLineTools/SDKs ] ; then
|
||||
SDKROOT=/Library/Developer/CommandLineTools/SDKs
|
||||
elif [ -d /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs ] ; then
|
||||
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
|
||||
else
|
||||
|
@ -154,10 +156,20 @@ if [ "$PLATFORM" = Darwin ] ; then
|
|||
echo "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs)"
|
||||
exit 1;
|
||||
fi
|
||||
# find a 10.x base SDK to use, or if none can be found, find a numbered 11.x base SDK to use
|
||||
BASESDK=$(ls $SDKROOT | grep "MacOSX10\.1.\.sdk" | head -1 | sed -e "s/MacOSX//;s/\.sdk//")
|
||||
OLDER_MAC="-mmacosx-version-min=10.11 -isysroot${SDKROOT}/MacOSX${BASESDK}.sdk"
|
||||
if [ -z "$BASESDK" ] ; then
|
||||
BASESDK=$(ls $SDKROOT | grep -E "MacOSX11\.[0-9]+\.sdk" | head -1 | sed -e "s/MacOSX//;s/\.sdk//")
|
||||
if [ -z "$BASESDK" ] ; then
|
||||
echo "Cannot find a base SDK of type 10.x or 11.x under the SDK root of ${SDKROOT}"
|
||||
exit 1;
|
||||
fi
|
||||
fi
|
||||
echo "Using ${BASESDK} as the BASESDK under ${SDKROOT}"
|
||||
|
||||
OLDER_MAC="-mmacosx-version-min=${BASESDK} -isysroot${SDKROOT}/MacOSX${BASESDK}.sdk"
|
||||
OLDER_MAC_CMAKE="-DCMAKE_OSX_DEPLOYMENT_TARGET=${BASESDK} -DCMAKE_OSX_SYSROOT=${SDKROOT}/MacOSX${BASESDK}.sdk/"
|
||||
if [[ ! -d /usr/include && ! -d "${SDKROOT}/MacOSX.sdk/usr/include" ]] ; then
|
||||
if [[ ! -d /usr/include && ! -d "${SDKROOT}/MacOSX${BASESDK}.sdk/usr/include" ]] ; then
|
||||
echo "Error: Xcode Command Line Tools are not installed"
|
||||
echo ""
|
||||
echo "Please run:"
|
||||
|
|
Loading…
Reference in a new issue