Enable C++11 on OSX when using Clang

This means we have to bump the deployment target to Lion (10.7), as the
LLVM 'libc++' C++ standard library does not support Snow Leopard (10.6).

For iOS the deployment target has to be bumped from 4.3 to 5.0, but we
don't enable C++11 by default yet as it's not tested enough on iOS.

Users who wish to deploy to 10.6 need to build their own Qt,
passing -no-c++11 to configure.

Change-Id: I7b5d20ab002db889d1091a4b7ff600f62caa7f06
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
This commit is contained in:
Tor Arne Vestbø 2013-04-03 15:05:06 +02:00 committed by The Qt Project
parent 30d01db3a5
commit 3d0a60aaa4
4 changed files with 15 additions and 2 deletions

4
configure vendored
View File

@ -2814,9 +2814,9 @@ if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then
QMAKE_CONFIG="$QMAKE_CONFIG force_debug_info"
fi
# iOS builds should be static to be able to submit to the App Store
if [ "$XPLATFORM_IOS" = "yes" ]; then
CFG_SHARED="no"
CFG_SHARED="no" # iOS builds should be static to be able to submit to the App Store
CFG_CXX11="no" # C++11 support disabled for now
fi
# disable GTK style support auto-detection on Mac

View File

@ -5,3 +5,6 @@ QMAKE_OBJCXXFLAGS_PRECOMPILE = -x objective-c++-header -c ${QMAKE_PCH_INPUT}
QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
QMAKE_XCODE_GCC_VERSION = com.apple.compilers.llvm.clang.1_0
QMAKE_CXXFLAGS_CXX11 += -stdlib=libc++
QMAKE_LFLAGS_CXX11 += -stdlib=libc++

View File

@ -1,3 +1,10 @@
QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_CXX11
QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_CXXFLAGS_CXX11
QMAKE_LFLAGS += $$QMAKE_LFLAGS_CXX11
contains(QMAKE_LFLAGS, -stdlib=libc++) {
equals(QMAKE_MACOSX_DEPLOYMENT_TARGET, 10.6): \
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7
contains(QMAKE_IOS_DEPLOYMENT_TARGET, ^4.*): \
QMAKE_IOS_DEPLOYMENT_TARGET = 5.0
}

View File

@ -40,6 +40,9 @@ isEmpty(QMAKE_MAC_PLATFORM_NAME): error("Could not resolve platform name for SDK
# 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)
# C++11 support may affect the deployment target
c++11: load(c++11)
ios:!host_build: \
deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET
else: \