diff options
Diffstat (limited to 'mkspecs')
-rw-r--r-- | mkspecs/common/clang.conf | 6 | ||||
-rw-r--r-- | mkspecs/common/g++-base.conf | 6 | ||||
-rw-r--r-- | mkspecs/common/qcc-base-qnx.conf | 2 | ||||
-rw-r--r-- | mkspecs/features/c++11.prf | 9 | ||||
-rw-r--r-- | mkspecs/features/c++14.prf | 23 | ||||
-rw-r--r-- | mkspecs/features/default_post.prf | 15 | ||||
-rw-r--r-- | mkspecs/features/mac/sdk.prf | 3 | ||||
-rw-r--r-- | mkspecs/features/qt_common.prf | 2 | ||||
-rw-r--r-- | mkspecs/linux-icc/qmake.conf | 6 | ||||
-rw-r--r-- | mkspecs/macx-icc/qmake.conf | 4 | ||||
-rw-r--r-- | mkspecs/win32-g++/qmake.conf | 6 | ||||
-rw-r--r-- | mkspecs/win32-icc/qmake.conf | 3 |
12 files changed, 50 insertions, 35 deletions
diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf index ee5fc14458..ee9c1b8371 100644 --- a/mkspecs/common/clang.conf +++ b/mkspecs/common/clang.conf @@ -27,9 +27,15 @@ QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG QMAKE_CXXFLAGS_DISABLE_LTCG = $$QMAKE_CFLAGS_DISABLE_LTCG QMAKE_CXXFLAGS_CXX11 = -std=c++11 +QMAKE_CXXFLAGS_CXX14 = -std=c++1y +QMAKE_CXXFLAGS_CXX1Z = -std=c++1z QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++11 +QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y +QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z QMAKE_LFLAGS_CXX11 = +QMAKE_LFLAGS_CXX14 = +QMAKE_LFLAGS_CXX1Z = QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG # Wrapper tools that understand .o/.a files with LLVM bytecode instead of machine code diff --git a/mkspecs/common/g++-base.conf b/mkspecs/common/g++-base.conf index 114a441687..4254551994 100644 --- a/mkspecs/common/g++-base.conf +++ b/mkspecs/common/g++-base.conf @@ -28,5 +28,11 @@ QMAKE_CXXFLAGS_PRECOMPILE = -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_P QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE QMAKE_CXXFLAGS_CXX11 = -std=c++0x +QMAKE_CXXFLAGS_CXX14 = -std=c++1y +QMAKE_CXXFLAGS_CXX1Z = -std=c++1z QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++0x +QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y +QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z QMAKE_LFLAGS_CXX11 = +QMAKE_LFLAGS_CXX14 = +QMAKE_LFLAGS_CXX1Z = diff --git a/mkspecs/common/qcc-base-qnx.conf b/mkspecs/common/qcc-base-qnx.conf index a0a88b9605..f7da151a41 100644 --- a/mkspecs/common/qcc-base-qnx.conf +++ b/mkspecs/common/qcc-base-qnx.conf @@ -45,6 +45,8 @@ QMAKE_LIBDIR = $${QNX_DIR}/$${QNX_CPUDIR}/lib $${QNX_DIR}/$${QNX_CPUD QMAKE_LFLAGS += -Wl,-rpath-link,$${QNX_DIR}/$${QNX_CPUDIR}/lib -Wl,-rpath-link,$${QNX_DIR}/$${QNX_CPUDIR}/usr/lib QMAKE_CXXFLAGS_CXX11 = -Wc,-std=gnu++0x +QMAKE_CXXFLAGS_CXX14 = -Wc,-std=gnu++1y +QMAKE_CXXFLAGS_CXX1Z = -Wc,-std=gnu++1z QMAKE_LINK_C = $$QMAKE_CC QMAKE_LINK_C_SHLIB = $$QMAKE_CC diff --git a/mkspecs/features/c++11.prf b/mkspecs/features/c++11.prf deleted file mode 100644 index c8a86548ee..0000000000 --- a/mkspecs/features/c++11.prf +++ /dev/null @@ -1,9 +0,0 @@ -strict_c++|isEmpty(QMAKE_CXXFLAGS_GNUCXX11) { - QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_CXX11 - QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_CXXFLAGS_CXX11 - QMAKE_LFLAGS += $$QMAKE_LFLAGS_CXX11 -} else { - QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_GNUCXX11 - QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_CXXFLAGS_GNUCXX11 - QMAKE_LFLAGS += $$QMAKE_LFLAGS_GNUCXX11 -} diff --git a/mkspecs/features/c++14.prf b/mkspecs/features/c++14.prf deleted file mode 100644 index 076458560d..0000000000 --- a/mkspecs/features/c++14.prf +++ /dev/null @@ -1,23 +0,0 @@ -intel_icc { - # ICC does not support C++14 yet -} else: clang { - # Clang has supported -std=c++1y since version 3.2 - greaterThan(QT_CLANG_MAJOR_VERSION, 3)|greaterThan(QT_CLANG_MINOR_VERSION, 1) { - QMAKE_CXXFLAGS_CXX11 = -std=c++1y - QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++1y - } - # Unknown how long Apple Clang has supported -std=c++1y, but at least since XCode 5.0 - greaterThan(QT_APPLE_CLANG_MAJOR_VERSION, 4) { - QMAKE_CXXFLAGS_CXX11 = -std=c++1y - QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++1y - } -} else: gcc { - # GCC has supported -std=c++1y since 4.8 - greaterThan(QT_GCC_MAJOR_VERSION, 4)|greaterThan(QT_GCC_MINOR_VERSION, 7) { - QMAKE_CXXFLAGS_CXX11 = -std=c++1y - QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++1y - } -} - -# Delegate to c++11.prf -include(c++11.prf) diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf index bcaddc8363..ebe83af25e 100644 --- a/mkspecs/features/default_post.prf +++ b/mkspecs/features/default_post.prf @@ -98,6 +98,21 @@ breakpad { !isEmpty(QMAKE_STRIP):QMAKE_POST_LINK = $$QMAKE_POST_LINK$$escape_expand(\\n\\t)$$quote($$QMAKE_STRIP $$DEBUGFILENAME) } +c++11|c++14|c++1z { + c++1z: cxxstd = CXX1Z + else: c++14: cxxstd = CXX14 + else: cxxstd = CXX11 + + # Check if we should disable the GNU extensions or not + !strict_c++:!isEmpty(QMAKE_CXXFLAGS_GNU$$cxxstd): cxxstd = GNU$$cxxstd + + QMAKE_CXXFLAGS += $$eval(QMAKE_CXXFLAGS_$$cxxstd) + QMAKE_OBJECTIVE_CFLAGS += $$eval(QMAKE_CXXFLAGS_$$cxxstd) + QMAKE_LFLAGS += $$eval(QMAKE_LFLAGS_$$cxxstd) + + unset(cxxstd) +} + !precompile_header: SOURCES += $$NO_PCH_SOURCES QMAKE_INCDIR += $$QMAKE_INCDIR_POST diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index e238f8e005..a5643e311d 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -72,9 +72,6 @@ isEmpty(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.platform_name) { # 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: \ diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf index 2ed43e5063..4fb04339f8 100644 --- a/mkspecs/features/qt_common.prf +++ b/mkspecs/features/qt_common.prf @@ -13,6 +13,8 @@ QMAKE_DIR_REPLACE_SANE += DESTDIR CONFIG -= debug_and_release_target contains(QT_CONFIG, c++11): CONFIG += c++11 strict_c++ +contains(QT_CONFIG, c++14): CONFIG += c++14 +contains(QT_CONFIG, c++1z): CONFIG += c++1z contains(TEMPLATE, .*lib) { # module and plugins !host_build:contains(QT_CONFIG, reduce_exports): CONFIG += hide_symbols diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf index ca9e81512e..38f1fe41a7 100644 --- a/mkspecs/linux-icc/qmake.conf +++ b/mkspecs/linux-icc/qmake.conf @@ -50,7 +50,11 @@ QMAKE_CXXFLAGS_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS # Disabling exceptions disabled - workaround for QTBUG-36577 #QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions QMAKE_CXXFLAGS_CXX11 = -std=c++0x +QMAKE_CXXFLAGS_CXX14 = -std=c++1y +QMAKE_CXXFLAGS_CXX1Z = -std=c++1z QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++0x +QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y +QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG QMAKE_INCDIR = @@ -73,6 +77,8 @@ QMAKE_LFLAGS_NOUNDEF = -Wl,-z,defs QMAKE_LFLAGS_RPATH = -Wl,-rpath, QMAKE_LFLAGS_RPATHLINK = -Wl,-rpath-link, QMAKE_LFLAGS_CXX11 = +QMAKE_LFLAGS_CXX14 = +QMAKE_LFLAGS_CXX1Z = QMAKE_LFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG QMAKE_LIBS = diff --git a/mkspecs/macx-icc/qmake.conf b/mkspecs/macx-icc/qmake.conf index c145c2c8f3..ffd95973ce 100644 --- a/mkspecs/macx-icc/qmake.conf +++ b/mkspecs/macx-icc/qmake.conf @@ -53,7 +53,11 @@ QMAKE_CXXFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_STATIC_LIB QMAKE_CXXFLAGS_YACC = $$QMAKE_CFLAGS_YACC QMAKE_CXXFLAGS_THREAD = $$QMAKE_CFLAGS_THREAD QMAKE_CXXFLAGS_CXX11 = -std=c++11 +QMAKE_CXXFLAGS_CXX14 = -std=c++1y +QMAKE_CXXFLAGS_CXX1Z = -std=c++1z QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++11 +QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y +QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z QMAKE_CXXFLAGS_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf index 019c220de5..388d697b58 100644 --- a/mkspecs/win32-g++/qmake.conf +++ b/mkspecs/win32-g++/qmake.conf @@ -56,7 +56,11 @@ QMAKE_CXXFLAGS_RTTI_OFF = -fno-rtti QMAKE_CXXFLAGS_EXCEPTIONS_ON = -fexceptions -mthreads QMAKE_CXXFLAGS_EXCEPTIONS_OFF = -fno-exceptions QMAKE_CXXFLAGS_CXX11 = -std=c++0x +QMAKE_CXXFLAGS_CXX14 = -std=c++1y +QMAKE_CXXFLAGS_CXX1Z = -std=c++1z QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++0x +QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y +QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z QMAKE_CXXFLAGS_SPLIT_SECTIONS = $$QMAKE_CFLAGS_SPLIT_SECTIONS QMAKE_INCDIR = @@ -77,6 +81,8 @@ QMAKE_LFLAGS_CONSOLE = -Wl,-subsystem,console QMAKE_LFLAGS_WINDOWS = -Wl,-subsystem,windows QMAKE_LFLAGS_DLL = -shared QMAKE_LFLAGS_CXX11 = +QMAKE_LFLAGS_CXX14 = +QMAKE_LFLAGS_CXX1Z = QMAKE_LFLAGS_GCSECTIONS = -Wl,--gc-sections QMAKE_LFLAGS_USE_GOLD = -fuse-ld=gold QMAKE_LINK_OBJECT_MAX = 10 diff --git a/mkspecs/win32-icc/qmake.conf b/mkspecs/win32-icc/qmake.conf index 31c87fff26..ff38ada670 100644 --- a/mkspecs/win32-icc/qmake.conf +++ b/mkspecs/win32-icc/qmake.conf @@ -46,6 +46,9 @@ QMAKE_CXXFLAGS_RTTI_OFF = QMAKE_CXXFLAGS_EXCEPTIONS_ON = -EHsc QMAKE_CXXFLAGS_EXCEPTIONS_OFF = QMAKE_CXXFLAGS_CXX11 = -Qstd=c++11 +# ICC supports the following but Qt won't compile +#QMAKE_CXXFLAGS_CXX14 = -Qstd=c++14 +#QMAKE_CXXFLAGS_CXX1Z = -Qstd=c++1z QMAKE_CXXFLAGS_LTCG = $$QMAKE_CFLAGS_LTCG QMAKE_INCDIR = |