diff options
Diffstat (limited to 'mkspecs/features/mac/sdk.prf')
-rw-r--r-- | mkspecs/features/mac/sdk.prf | 55 |
1 files changed, 48 insertions, 7 deletions
diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index 5eab94896b..287cfdecdb 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -1,8 +1,49 @@ -!isEmpty(QMAKE_MAC_SDK) { - !macx-xcode:!macx-pbuilder { - QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK - QMAKE_OBJECTIVE_CFLAGS += -isysroot $$QMAKE_MAC_SDK - QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK - QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK - } + +isEmpty(QMAKE_MAC_SDK): \ + error("QMAKE_MAC_SDK must be set when using CONFIG += sdk.") + +contains(QMAKE_MAC_SDK, .*/.*): \ + error("QMAKE_MAC_SDK can only contain short-form SDK names (eg. macosx, iphoneos)") + +QMAKE_MAC_SDK_INFO = $$system("xcodebuild -sdk $$QMAKE_MAC_SDK -version 2>/dev/null", lines) +isEmpty(QMAKE_MAC_SDK_INFO): error("Could not resolve SDK \'$$QMAKE_MAC_SDK\'") + +defineReplace(qtMacSDKInfo): \ + return($$replace($$list($$find(QMAKE_MAC_SDK_INFO, ^$$1:)), ^$$1:(.*), \\1)) + +QMAKE_MAC_SDK_PATH = $$qtMacSDKInfo(Path) + +!equals(MAKEFILE_GENERATOR, XCODE) { + QMAKE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH + QMAKE_CXXFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH + QMAKE_OBJECTIVE_CFLAGS += -isysroot $$QMAKE_MAC_SDK_PATH + QMAKE_LFLAGS += -Wl,-syslibroot,$$QMAKE_MAC_SDK_PATH +} + +sysrootified = +for(val, QMAKE_INCDIR_OPENGL): sysrootified += $${QMAKE_MAC_SDK_PATH}$$val +QMAKE_INCDIR_OPENGL = $$sysrootified + +# We use xml as the output format instead of json since plutil on 10.6 does not have that option +QMAKE_MAC_PLATFORM_NAME = $$system("plutil -convert xml1 \"$$QMAKE_MAC_SDK_PATH/SDKSettings.plist\" -o - | " \ + "sed '/^<!DOCTYPE/d' | " \ # Don't look up http://www.apple.com/DTDs/PropertyList-1.0.dtd + "PERL5LIB= xpath 'string(//key[.=\"PLATFORM_NAME\"]/following-sibling::*[1])' 2>&1 | " \ + "sed 's/.*Value: \\(.*\\)/\\1/'") + +isEmpty(QMAKE_MAC_PLATFORM_NAME): error("Could not resolve platform name for SDK '$$QMAKE_MAC_SDK'") + +!equals(MAKEFILE_GENERATOR, XCODE) { + # FIXME: Get the version_min_flag out of the platform's 'Native Build System.xcspec' + version_identifier = $$replace(QMAKE_MAC_PLATFORM_NAME, iphonesimulator, ios-simulator) + + ios:!host_build: \ + deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET + else: \ + deployment_target = $$QMAKE_MACOSX_DEPLOYMENT_TARGET + + version_min_flag = -m$${version_identifier}-version-min=$$deployment_target + QMAKE_CFLAGS += $$version_min_flag + QMAKE_CXXFLAGS += $$version_min_flag + QMAKE_OBJECTIVE_CFLAGS += $$version_min_flag + QMAKE_LFLAGS += $$version_min_flag } |