summaryrefslogtreecommitdiffstats
path: root/mkspecs/features/c++11.prf
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2015-07-08 14:09:10 -0700
committerThiago Macieira <thiago.macieira@intel.com>2015-07-17 17:36:27 +0000
commitff4444065158285b573c6fc0a91c9e75fc7ddd96 (patch)
treeb65d2244895a8f873997551ea8079ac4276ca12e /mkspecs/features/c++11.prf
parent85ff35126623e6f26c84d9fa8a35b6762aefb110 (diff)
Make CONFIG += c++11 by default not disable GNU extensions
Prefer -std=gnu++11 unless strict_c++11 is defined. You can enable strict C++11/C++14 mode by using CONFIG += strict_c++ That is enabled for Qt's own code, so we we don't accidentally use GNU extensions in portable code. There's no support for strict C++98 mode (that is, the -ansi option). [ChangeLog][qmake] By default, GNU extensions are now enabled with Clang, GCC and ICC even in C++11 and C++14 modes. To disable the GNU extensions, add to your .pro file: CONFIG += strict_c++. Change-Id: Ib056b47dde3341ef9a52ffff13ef14de2169bef5 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'mkspecs/features/c++11.prf')
-rw-r--r--mkspecs/features/c++11.prf12
1 files changed, 9 insertions, 3 deletions
diff --git a/mkspecs/features/c++11.prf b/mkspecs/features/c++11.prf
index 32eaca4a9b..3f31f8ea82 100644
--- a/mkspecs/features/c++11.prf
+++ b/mkspecs/features/c++11.prf
@@ -1,6 +1,12 @@
-QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_CXX11
-QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_CXXFLAGS_CXX11
-QMAKE_LFLAGS += $$QMAKE_LFLAGS_CXX11
+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
+}
contains(QMAKE_LFLAGS, -stdlib=libc++) {
equals(QMAKE_MACOSX_DEPLOYMENT_TARGET, 10.6): \