summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-04-17 16:01:46 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-04-19 08:14:25 +0000
commit51bae0331c1fde52d0b3f1184d38a2be462ebd42 (patch)
tree400fd6ea93b81921d7f63f4944032a672fb3c8ea /mkspecs
parent38deb05109bcee9ad25a10eff024eaf8ce7a57f1 (diff)
Add qmake support for c++2a
Makes it possible to build user projects and Qt with C++2a. It is not automatically upgraded to yet though. Change-Id: I949ce94871ddc53f21b7265a52b9c0e1370456c8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/common/clang.conf2
-rw-r--r--mkspecs/common/g++-base.conf2
-rw-r--r--mkspecs/common/msvc-version.conf2
-rw-r--r--mkspecs/features/default_post.prf7
-rw-r--r--mkspecs/features/qt_common.prf1
5 files changed, 11 insertions, 3 deletions
diff --git a/mkspecs/common/clang.conf b/mkspecs/common/clang.conf
index dacd1539cf..df210fe42d 100644
--- a/mkspecs/common/clang.conf
+++ b/mkspecs/common/clang.conf
@@ -31,9 +31,11 @@ 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_CXX2A = -std=c++2a
QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++11
QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y
QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z
+QMAKE_CXXFLAGS_GNUCXX2A = -std=gnu++2a
QMAKE_LFLAGS_CXX11 =
QMAKE_LFLAGS_CXX14 =
diff --git a/mkspecs/common/g++-base.conf b/mkspecs/common/g++-base.conf
index fa0f0c391d..8053feb876 100644
--- a/mkspecs/common/g++-base.conf
+++ b/mkspecs/common/g++-base.conf
@@ -32,9 +32,11 @@ QMAKE_CFLAGS_GNUC11 = -std=gnu11
QMAKE_CXXFLAGS_CXX11 = -std=c++11
QMAKE_CXXFLAGS_CXX14 = -std=c++1y
QMAKE_CXXFLAGS_CXX1Z = -std=c++1z
+QMAKE_CXXFLAGS_CXX2A = -std=c++2a
QMAKE_CXXFLAGS_GNUCXX11 = -std=gnu++11
QMAKE_CXXFLAGS_GNUCXX14 = -std=gnu++1y
QMAKE_CXXFLAGS_GNUCXX1Z = -std=gnu++1z
+QMAKE_CXXFLAGS_GNUCXX2A = -std=gnu++2a
QMAKE_LFLAGS_CXX11 =
QMAKE_LFLAGS_CXX14 =
QMAKE_LFLAGS_CXX1Z =
diff --git a/mkspecs/common/msvc-version.conf b/mkspecs/common/msvc-version.conf
index 06af6abf13..af33132077 100644
--- a/mkspecs/common/msvc-version.conf
+++ b/mkspecs/common/msvc-version.conf
@@ -116,6 +116,8 @@ greaterThan(QMAKE_MSC_VER, 1910) {
greaterThan(QMAKE_MSC_VER, 1919) {
# Visual Studio 2019 (16.0) / Visual C++ 19.20 and up
MSVC_VER = 16.0
+ QMAKE_CXXFLAGS_CXX2A = -std:c++latest
+
}
!isEmpty(COMPAT_MKSPEC):!$$COMPAT_MKSPEC: CONFIG += $$COMPAT_MKSPEC
diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf
index 69da78c5b7..9df99b8648 100644
--- a/mkspecs/features/default_post.prf
+++ b/mkspecs/features/default_post.prf
@@ -121,15 +121,16 @@ breakpad {
c++17: CONFIG += c++1z
-!c++11:!c++14:!c++1z {
+!c++11:!c++14:!c++1z:!c++2a {
# Qt requires C++11 since 5.7, check if we need to force a compiler option
QT_COMPILER_STDCXX_no_L = $$replace(QT_COMPILER_STDCXX, "L$", "")
!greaterThan(QT_COMPILER_STDCXX_no_L, 199711): CONFIG += c++11
}
-c++11|c++14|c++1z {
+c++11|c++14|c++1z|c++2a {
# Disable special compiler flags for host builds
!host_build|!cross_compile {
- c++1z: cxxstd = CXX1Z
+ c++2a: cxxstd = CXX2A
+ else: c++1z: cxxstd = CXX1Z
else: c++14: cxxstd = CXX14
else: cxxstd = CXX11
} else {
diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
index ae859a81ff..004b32fd22 100644
--- a/mkspecs/features/qt_common.prf
+++ b/mkspecs/features/qt_common.prf
@@ -17,6 +17,7 @@ DEFINES *= QT_NO_NARROWING_CONVERSIONS_IN_CONNECT
qtConfig(c++11): CONFIG += c++11 strict_c++
qtConfig(c++14): CONFIG += c++14
qtConfig(c++1z): CONFIG += c++1z
+qtConfig(c++2a): CONFIG += c++2a
qtConfig(c99): CONFIG += c99
qtConfig(c11): CONFIG += c11
qtConfig(stack-protector-strong): CONFIG += stack_protector_strong