Use absolute paths for Xcode helpers such as xcodebuild/xcrun/xcode-select
We always use the xcodebuild/xcrun/xcode-select binaries in /usr/bin, as these will dispatch to the right binary based on what Xcode version has been chosen using xcode-select -switch. This fixes an issue where a tool was in the path from another Xcode installation. We can rely on the tools as they are present on a clean Mac OS install. Change-Id: I1d3cc1e92604f9be6d6f14639cb6322234edd696 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This commit is contained in:
parent
ab7eacd8a5
commit
4f002f3256
6
configure
vendored
6
configure
vendored
@ -233,7 +233,7 @@ macSDKify()
|
|||||||
|
|
||||||
sdk=$(getSingleQMakeVariable "QMAKE_MAC_SDK" "$1")
|
sdk=$(getSingleQMakeVariable "QMAKE_MAC_SDK" "$1")
|
||||||
if [ -z "$sdk" ]; then echo "QMAKE_MAC_SDK must be set when building on Mac" >&2; exit 1; fi
|
if [ -z "$sdk" ]; then echo "QMAKE_MAC_SDK must be set when building on Mac" >&2; exit 1; fi
|
||||||
sysroot=$(xcodebuild -sdk $sdk -version Path 2>/dev/null)
|
sysroot=$(/usr/bin/xcodebuild -sdk $sdk -version Path 2>/dev/null)
|
||||||
if [ -z "$sysroot" ]; then echo "Failed to resolve SDK path for '$sdk'" >&2; exit 1; fi
|
if [ -z "$sysroot" ]; then echo "Failed to resolve SDK path for '$sdk'" >&2; exit 1; fi
|
||||||
|
|
||||||
case "$sdk" in
|
case "$sdk" in
|
||||||
@ -256,7 +256,7 @@ macSDKify()
|
|||||||
# Prefix tool with toolchain path
|
# Prefix tool with toolchain path
|
||||||
var=$(echo "$line" | cut -d '=' -f 1)
|
var=$(echo "$line" | cut -d '=' -f 1)
|
||||||
val=$(echo "$line" | cut -d '=' -f 2-)
|
val=$(echo "$line" | cut -d '=' -f 2-)
|
||||||
sdk_val=$(xcrun -sdk $sdk -find $(echo $val | cut -d ' ' -f 1))
|
sdk_val=$(/usr/bin/xcrun -sdk $sdk -find $(echo $val | cut -d ' ' -f 1))
|
||||||
val=$(echo $sdk_val $(echo $val | cut -s -d ' ' -f 2-))
|
val=$(echo $sdk_val $(echo $val | cut -s -d ' ' -f 2-))
|
||||||
echo "$var=$val"
|
echo "$var=$val"
|
||||||
;;
|
;;
|
||||||
@ -2459,7 +2459,7 @@ if [ -z "$PLATFORM" ]; then
|
|||||||
# about the OS version, since we're not using the clang version that comes
|
# about the OS version, since we're not using the clang version that comes
|
||||||
# with the system. We use 'xcrun' to check the clang version that's part of
|
# with the system. We use 'xcrun' to check the clang version that's part of
|
||||||
# the Xcode installation.
|
# the Xcode installation.
|
||||||
if [ "$(xcrun -sdk macosx clang -v 2>&1 | sed -n 's/.*version \([0-9]\).*/\1/p')" -ge 3 ]; then
|
if [ "$(/usr/bin/xcrun -sdk macosx clang -v 2>&1 | sed -n 's/.*version \([0-9]\).*/\1/p')" -ge 3 ]; then
|
||||||
PLATFORM=macx-clang
|
PLATFORM=macx-clang
|
||||||
|
|
||||||
# Advertise g++ as an alternative on Lion and below
|
# Advertise g++ as an alternative on Lion and below
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
# Get path of Xcode's Developer directory
|
# Get path of Xcode's Developer directory
|
||||||
QMAKE_XCODE_DEVELOPER_PATH = $$system("xcode-select --print-path")
|
QMAKE_XCODE_DEVELOPER_PATH = $$system("/usr/bin/xcode-select --print-path")
|
||||||
isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \
|
isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \
|
||||||
error("Xcode path is not set. Please use xcode-select to choose Xcode installation path.")
|
error("Xcode path is not set. Please use xcode-select to choose Xcode installation path.")
|
||||||
|
|
||||||
@ -12,6 +12,6 @@ isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \
|
|||||||
error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.")
|
error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.")
|
||||||
|
|
||||||
# Extract Xcode version using xcodebuild
|
# Extract Xcode version using xcodebuild
|
||||||
xcode_version = $$system("xcodebuild -version")
|
xcode_version = $$system("/usr/bin/xcodebuild -version")
|
||||||
QMAKE_XCODE_VERSION = $$member(xcode_version, 1)
|
QMAKE_XCODE_VERSION = $$member(xcode_version, 1)
|
||||||
unset(xcode_version)
|
unset(xcode_version)
|
||||||
|
@ -5,7 +5,7 @@ isEmpty(QMAKE_MAC_SDK): \
|
|||||||
contains(QMAKE_MAC_SDK, .*/.*): \
|
contains(QMAKE_MAC_SDK, .*/.*): \
|
||||||
error("QMAKE_MAC_SDK can only contain short-form SDK names (eg. macosx, iphoneos)")
|
error("QMAKE_MAC_SDK can only contain short-form SDK names (eg. macosx, iphoneos)")
|
||||||
|
|
||||||
QMAKE_MAC_SDK_PATH = $$system("xcodebuild -sdk $$QMAKE_MAC_SDK -version Path 2>/dev/null")
|
QMAKE_MAC_SDK_PATH = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version Path 2>/dev/null")
|
||||||
isEmpty(QMAKE_MAC_SDK_PATH): error("Could not resolve SDK path for \'$$QMAKE_MAC_SDK\'")
|
isEmpty(QMAKE_MAC_SDK_PATH): error("Could not resolve SDK path for \'$$QMAKE_MAC_SDK\'")
|
||||||
|
|
||||||
!equals(MAKEFILE_GENERATOR, XCODE) {
|
!equals(MAKEFILE_GENERATOR, XCODE) {
|
||||||
@ -24,7 +24,7 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_
|
|||||||
value = $$eval($$tool)
|
value = $$eval($$tool)
|
||||||
isEmpty(value): next()
|
isEmpty(value): next()
|
||||||
|
|
||||||
sysrooted = $$system("xcrun -sdk $$QMAKE_MAC_SDK -find $$first(value) 2>/dev/null")
|
sysrooted = $$system("/usr/bin/xcrun -sdk $$QMAKE_MAC_SDK -find $$first(value) 2>/dev/null")
|
||||||
isEmpty(sysrooted): next()
|
isEmpty(sysrooted): next()
|
||||||
|
|
||||||
$$tool = $$sysrooted $$member(value, 1, -1)
|
$$tool = $$sysrooted $$member(value, 1, -1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user