diff options
-rw-r--r-- | cmake/QtFlagHandlingHelpers.cmake | 4 | ||||
-rw-r--r-- | cmake/QtPublicTargetsHelpers.cmake | 2 | ||||
-rw-r--r-- | mkspecs/common/msvc-version.conf | 7 | ||||
-rw-r--r-- | qmake/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/tools/bootstrap/CMakeLists.txt | 2 |
5 files changed, 6 insertions, 11 deletions
diff --git a/cmake/QtFlagHandlingHelpers.cmake b/cmake/QtFlagHandlingHelpers.cmake index b9835a3639..250df5de2d 100644 --- a/cmake/QtFlagHandlingHelpers.cmake +++ b/cmake/QtFlagHandlingHelpers.cmake @@ -228,11 +228,11 @@ function(qt_set_language_standards_interface_compile_features target) target_compile_features("${target}" INTERFACE ${cpp_feature}) endfunction() -function(qt_enable_msvc_cplusplus_define target visibility) +function(qt_set_msvc_cplusplus_options target visibility) # For MSVC we need to explicitly pass -Zc:__cplusplus to get correct __cplusplus. # Check qt_config_compile_test for more info. if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" AND MSVC_VERSION GREATER_EQUAL 1913) - target_compile_options("${target}" ${visibility} "-Zc:__cplusplus") + target_compile_options("${target}" ${visibility} "-Zc:__cplusplus" "-permissive-") endif() endfunction() diff --git a/cmake/QtPublicTargetsHelpers.cmake b/cmake/QtPublicTargetsHelpers.cmake index 8d916535ac..2e5eb564f4 100644 --- a/cmake/QtPublicTargetsHelpers.cmake +++ b/cmake/QtPublicTargetsHelpers.cmake @@ -20,7 +20,7 @@ function(qt_internal_setup_public_platform_target) target_link_libraries(Platform INTERFACE log) endif() - qt_enable_msvc_cplusplus_define(Platform INTERFACE) + qt_set_msvc_cplusplus_options(Platform INTERFACE) # Propagate minimum C++ 17 via Platform to Qt consumers (apps), after the global features # are computed. diff --git a/mkspecs/common/msvc-version.conf b/mkspecs/common/msvc-version.conf index eee5cc0dd5..26ff635e65 100644 --- a/mkspecs/common/msvc-version.conf +++ b/mkspecs/common/msvc-version.conf @@ -78,7 +78,7 @@ greaterThan(QMAKE_MSC_VER, 1909) { # Visual Studio 2017 (15.0) / Visual C++ 19.10 and up MSVC_VER = 15.0 COMPAT_MKSPEC = win32-msvc2017 - QMAKE_CXXFLAGS += -Zc:referenceBinding + QMAKE_CXXFLAGS += -permissive- # Only Visual Studio 2017 version 15.3 / Visual C++ 19.11 & up have support # for AVX-512. We enable the switches anyway and let configure check if they @@ -93,11 +93,6 @@ greaterThan(QMAKE_MSC_VER, 1909) { QMAKE_CFLAGS_AVX512IFMA = -arch:AVX512 QMAKE_CFLAGS_AVX512VBMI = -arch:AVX512 - # For now permissive fails as soon as UWP API comes into play. In qtbase this - # 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 diff --git a/qmake/CMakeLists.txt b/qmake/CMakeLists.txt index 0dc9d5f03c..133472b78d 100644 --- a/qmake/CMakeLists.txt +++ b/qmake/CMakeLists.txt @@ -275,7 +275,7 @@ set_target_properties(${target_name} PROPERTIES qt_internal_apply_gc_binaries(${target_name} PRIVATE) # special case -qt_enable_msvc_cplusplus_define(${target_name} PUBLIC) # special case +qt_set_msvc_cplusplus_options(${target_name} PUBLIC) # special case qt_skip_warnings_are_errors(${target_name}) # special case qt_internal_apply_intel_cet(Bootstrap PUBLIC) # special case diff --git a/src/tools/bootstrap/CMakeLists.txt b/src/tools/bootstrap/CMakeLists.txt index 7669207fdd..b61b7cbd99 100644 --- a/src/tools/bootstrap/CMakeLists.txt +++ b/src/tools/bootstrap/CMakeLists.txt @@ -265,6 +265,6 @@ target_link_libraries(Bootstrap PRIVATE PlatformCommonInternal) qt_internal_apply_gc_binaries(Bootstrap PUBLIC) set_target_properties(Bootstrap PROPERTIES AUTOMOC OFF AUTOUIC OFF AUTORCC OFF) qt_internal_add_target_aliases(Bootstrap) -qt_enable_msvc_cplusplus_define(Bootstrap PUBLIC) +qt_set_msvc_cplusplus_options(Bootstrap PUBLIC) qt_internal_apply_intel_cet(Bootstrap PUBLIC) # special case end |