summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmake/QtFlagHandlingHelpers.cmake4
-rw-r--r--cmake/QtPublicTargetsHelpers.cmake2
-rw-r--r--mkspecs/common/msvc-version.conf7
-rw-r--r--qmake/CMakeLists.txt2
-rw-r--r--src/tools/bootstrap/CMakeLists.txt2
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