From 3e201d645e1276c5168d7fef6943f95cc67d8643 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Mon, 7 May 2018 22:55:09 -0700 Subject: MSVC: Enable the detection of C++14 and 17 in MSVC 2017 15.7 We need -Zc:__cplusplus in order to enable the __cplusplus macro having the correct value. This causes configure to now print: Checking for C++14 support... yes Checking for C++1z support... yes and Using C++ standard ..................... C++1z Change-Id: I5d0ee9389a794d80983efffd152c95a4d9d8adbc Reviewed-by: Oswald Buddenhagen Reviewed-by: Thiago Macieira --- mkspecs/common/msvc-version.conf | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'mkspecs/common/msvc-version.conf') diff --git a/mkspecs/common/msvc-version.conf b/mkspecs/common/msvc-version.conf index ccd809abf3..3fb55c9d81 100644 --- a/mkspecs/common/msvc-version.conf +++ b/mkspecs/common/msvc-version.conf @@ -100,11 +100,16 @@ greaterThan(QMAKE_MSC_VER, 1909) { # API is used in direct2d, but also in multimedia, positioning and sensors. # We can try again with a later version of Visual Studio. # QMAKE_CXXFLAGS_STRICTCXX = -permissive- + # MSVC partially supports the following, but '__cplusplus' definition is set # as for C++98 until MSVC fully conforms with C++14, see # https://developercommunity.visualstudio.com/content/problem/139261/msvc-incorrectly-defines-cplusplus.html - # QMAKE_CXXFLAGS_CXX14 = -std:c++14 - # QMAKE_CXXFLAGS_CXX1Z = -std:c++latest + # Support became available in MSVC 2017 15.7: + greaterThan(QMAKE_MSC_VER, 1913) { + QMAKE_CXXFLAGS += -Zc:__cplusplus + QMAKE_CXXFLAGS_CXX14 = -std:c++14 + QMAKE_CXXFLAGS_CXX1Z = -std:c++17 + } } greaterThan(QMAKE_MSC_VER, 1910) { -- cgit v1.2.3