diff --git a/cmake/QtFlagHandlingHelpers.cmake b/cmake/QtFlagHandlingHelpers.cmake index 3558dd46acd..9c5aee5d905 100644 --- a/cmake/QtFlagHandlingHelpers.cmake +++ b/cmake/QtFlagHandlingHelpers.cmake @@ -148,16 +148,19 @@ function(qt_internal_set_exceptions_flags target exceptions_on) if(exceptions_on) if(MSVC) set(_flag "/EHsc") + if(MSVC_VERSION GREATER_EQUAL 1929) + set(_flag ${_flag} "/d2FH4") + endif() endif() else() set(_defs "QT_NO_EXCEPTIONS") if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") - set(_flag "/wd4530" "/wd4577") + set(_flag "/EHs-c-" "/wd4530" "/wd4577") elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|AppleClang|InteLLLVM") set(_flag "-fno-exceptions") elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") if (MSVC) - set(_flag "/wd4530" "/wd4577") + set(_flag "/EHs-c-" "/wd4530" "/wd4577") else() set(_flag "-fno-exceptions") endif()