diff options
author | Qt4iOS <ian@mediator-software.com> | 2012-03-16 15:00:33 +0000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-26 03:15:22 +0200 |
commit | f9048b3465d163a3c4e12fe6b9261d42a996b314 (patch) | |
tree | b7bc8e41f00bf6ba2f3f28707bb917cae36f2419 /mkspecs/common/ios/versions.conf | |
parent | 5a6ee590a29f0fca0946cd666183b28b390783fa (diff) |
Added mkspecs for iOS.
Modified common MacOS gcc config for iOS compatibility. Added iOS
mkspecs for iOS devices and simulator using G++, LLVM-G++ or CLANG
compilers.
Change-Id: If0a0b1a3ce4e0dc4db319a315e227a9d31549399
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'mkspecs/common/ios/versions.conf')
-rw-r--r-- | mkspecs/common/ios/versions.conf | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/mkspecs/common/ios/versions.conf b/mkspecs/common/ios/versions.conf new file mode 100644 index 0000000000..b755068769 --- /dev/null +++ b/mkspecs/common/ios/versions.conf @@ -0,0 +1,184 @@ +# +# Helper to set build tool & SDK versions for iOS configurations +# +# This file sets up the following configuration variables: +# +# QMAKE_IOS_XCODE_VERSION - version number of Xcode being used +# QMAKE_IOS_SDK_VERSION - version number of iOS device SDK +# QMAKE_IOS_SIMULATOR_SDK_VERSION - version number of iOS simulator SDK +# +# Used in: +# +# mkspecs/common/ios/clang.conf +# mkspecs/common/ios/llvm.conf +# mkspecs/common/ios/qmake.conf +# mkspecs/unsupported/macx-iosdevice-clang-legacy/qmake.conf +# mkspecs/unsupported/macx-iosdevice-clang/qmake.conf +# mkspecs/unsupported/macx-iosdevice-llvm-legacy/qmake.conf +# mkspecs/unsupported/macx-iosdevice-llvm/qmake.conf +# mkspecs/unsupported/macx-iosdevice-g++-legacy/qmake.conf +# mkspecs/unsupported/macx-iossimulator-llvm-legacy/qmake.conf +# mkspecs/unsupported/macx-iossimulator-llvm/qmake.conf +# mkspecs/unsupported/macx-iossimulator-g++-legacy/qmake.conf +# + +# +# IMPORTANT: +# +# Xcode versions <= 4.2.x must be installed in /Developer. +# Xcode versions >= 4.3.x must be installed in /Applications +# +# Xcode versions >= 4.10 & < 5.0 and versions >= 10.0 are not supported due to +# the way the version checks are done here. As Apple (so far) has not used +# minor version numbers greater than 3 for Xcode, and the Xcode major version +# has only changed three times in the period 2003-2012, this is viewed as an +# acceptable limitation. +# + +# +# Edit values below to match iOS build environment, or leave blank for +# autodetection (slower!) +# + +# Xcode version used for cross-compiling +QMAKE_IOS_XCODE_VERSION = + +# iOS SDK version used for cross-compiling for iOS devices +QMAKE_IOS_SDK_VERSION = + +# iOS SDK version used for cross-compiling for the iOS simulator +QMAKE_IOS_SIMULATOR_SDK_VERSION = + +# +# Do not edit values below here if using a pre-built SDK +# + +# Minimum iOS version required on deployment target (if not specified, will +# default to minimum version that guarantees ARMv7 & OpenGL/ES 2.x). +# +# No part of Qt or any known plugin uses features that require iOS versions +# later than 4.0. +QMAKE_IPHONEOS_DEPLOYMENT_TARGET = 4.0 + +########################################################################### + +# No Xcode version specified? +isEmpty(QMAKE_IOS_XCODE_VERSION) { + # Get version string from installed Xcode + exists(/Applications/Xcode.app/Contents/Developer) { + QMAKE_IOS_XCODE_INFO = $$system(/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -version) + } else: QMAKE_IOS_XCODE_INFO = $$system(/Developer/usr/bin/xcodebuild -version) + + # Extract Xcode version number from output + QMAKE_IOS_XCODE_VERSION = $$member(QMAKE_IOS_XCODE_INFO, 1) + QMAKE_IOS_XCODE_INFO = +} + +# Make sure Xcode version is valid +!lessThan(QMAKE_IOS_XCODE_VERSION, "4.3") { + # Xcode 4.3+ is stored in /Applications + QMAKE_IOS_PLATFORM_PATH = /Applications/Xcode.app/Contents/Developer/Platforms + + # Make sure Xcode path is valid + !exists($$QMAKE_IOS_PLATFORM_PATH): error("Xcode is not installed in /Applications/Xcode.app! Edit mkspecs/common/ios/versions.conf to specify version installed.") +} else { + # Older Xcode versions are stored in /Developer + QMAKE_IOS_PLATFORM_PATH = /Developer/Platforms + + # Make sure Xcode path is valid + !exists($$QMAKE_IOS_PLATFORM_PATH): error("Xcode is not installed in /Developer! Edit mkspecs/common/ios/versions.conf to specify version installed.") +} + +# iOS 4.3 is the preferred version as it is the earliest version that is armv7/gles2 only +QMAKE_IPHONEOS_PREFERRED_TARGET = 4.3 + +# Building for iOS device? +!*simulator* { + # No iOS SDK version specified? + isEmpty(QMAKE_IOS_SDK_VERSION) { + # Get version string from installed Xcode + !lessThan(QMAKE_IOS_XCODE_VERSION, "4.3") { + QMAKE_IOS_SDK_INFO = $$system(/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -showsdks) + } else: QMAKE_IOS_SDK_INFO = $$system(/Developer/usr/bin/xcodebuild -showsdks) + + # Get names of installed device SDKs + QMAKE_IOS_SDK_INFO = $$find(QMAKE_IOS_SDK_INFO, ^iphoneos) + for(v, QMAKE_IOS_SDK_INFO): { + # Extract SDK version number from output + v = $$replace(v,iphoneos,) + + # Use latest SDK version + greaterThan(v, $$QMAKE_IOS_SDK_VERSION): QMAKE_IOS_SDK_VERSION = $$v + } + QMAKE_IOS_SDK_INFO = + } + + # Make sure iOS SDK version is valid + !exists($$QMAKE_IOS_PLATFORM_PATH/iPhoneOS.platform/Developer/SDKs/iPhoneOS$${QMAKE_IOS_SDK_VERSION}.sdk) { + error("iOS $$QMAKE_IOS_SDK_VERSION SDK not found! Edit mkspecs/common/ios/versions.conf to specify version installed.") + } + + # No deployment target specified? + isEmpty(QMAKE_IPHONEOS_DEPLOYMENT_TARGET) { + # Use SDK version for iOS versions < preferred + lessThan(QMAKE_IOS_SDK_VERSION, $$QMAKE_IPHONEOS_PREFERRED_TARGET) { + QMAKE_IPHONEOS_DEPLOYMENT_TARGET = $$QMAKE_IOS_SDK_VERSION + } else: QMAKE_IPHONEOS_DEPLOYMENT_TARGET = $$QMAKE_IPHONEOS_PREFERRED_TARGET + } + + # Make sure iOS SDK version is >= iOS target version + !lessThan(QMAKE_IPHONEOS_DEPLOYMENT_TARGET, $$QMAKE_IOS_SDK_VERSION) { + error("Target iOS version is greater that iOS SDK version $$QMAKE_IOS_SDK_VERSION! Edit mkspecs/common/ios/versions.conf to specify target iOS version.") + } +# Building for iOS simulator +} else { + # No iOS simulator SDK version specified? + isEmpty(QMAKE_IOS_SIMULATOR_SDK_VERSION) { + # Get version string from installed Xcode + !lessThan(QMAKE_IOS_XCODE_VERSION, "4.3") { + QMAKE_IOS_SDK_INFO = $$system(/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -showsdks) + } else: QMAKE_IOS_SDK_INFO = $$system(/Developer/usr/bin/xcodebuild -showsdks) + + # Get names of installed device SDKs + QMAKE_IOS_SDK_INFO = $$find(QMAKE_IOS_SDK_INFO, ^iphonesimulator) + for(v, QMAKE_IOS_SDK_INFO): { + # Extract SDK version number from output + v = $$replace(v,iphonesimulator,) + + # Use latest SDK version + greaterThan(v, $$QMAKE_IOS_SIMULATOR_SDK_VERSION): QMAKE_IOS_SIMULATOR_SDK_VERSION = $$v + } + QMAKE_IOS_SDK_INFO = + } + + # Make sure iOS simulator SDK version is valid + !exists($$QMAKE_IOS_PLATFORM_PATH/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator$${QMAKE_IOS_SIMULATOR_SDK_VERSION}.sdk) { + error("iOS $$QMAKE_IOS_SIMULATOR_SDK_VERSION simulator SDK not found! Edit mkspecs/common/ios/versions.conf to specify version installed.") + } + + # No deployment target specified? + isEmpty(QMAKE_IPHONEOS_DEPLOYMENT_TARGET) { + # Use SDK version for iOS versions < preferred + lessThan(QMAKE_IOS_SIMULATOR_SDK_VERSION, $$QMAKE_IPHONEOS_PREFERRED_TARGET) { + QMAKE_IPHONEOS_DEPLOYMENT_TARGET = $$QMAKE_IOS_SIMULATOR_SDK_VERSION + } else: QMAKE_IPHONEOS_DEPLOYMENT_TARGET = $$QMAKE_IPHONEOS_PREFERRED_TARGET + } + + # Make sure iOS simulator SDK version is >= iOS target version + !lessThan(QMAKE_IPHONEOS_DEPLOYMENT_TARGET, $$QMAKE_IOS_SIMULATOR_SDK_VERSION) { + error("Target iOS version is greater that iOS simulator SDK version $$QMAKE_IOS_SIMULATOR_SDK_VERSION! Edit mkspecs/common/ios/versions.conf to specify target iOS version.") + } +} + +QMAKE_IPHONEOS_PREFERRED_TARGET = +QMAKE_IOS_PLATFORM_PATH = + +# Set deployment target +QMAKE_IOS_VERSION_FLAGS = -miphoneos-version-min=$$QMAKE_IPHONEOS_DEPLOYMENT_TARGET + +# Set build flags +QMAKE_CFLAGS += $$QMAKE_IOS_VERSION_FLAGS +QMAKE_CXXFLAGS += $$QMAKE_IOS_VERSION_FLAGS +QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_IOS_VERSION_FLAGS +QMAKE_LFLAGS += $$QMAKE_IOS_VERSION_FLAGS +QMAKE_IOS_VERSION_FLAGS = |