diff options
-rw-r--r-- | cmake/QtApp.cmake | 1 | ||||
-rw-r--r-- | cmake/QtBuild.cmake | 4 | ||||
-rw-r--r-- | src/corelib/Qt6CoreMacros.cmake | 16 |
3 files changed, 21 insertions, 0 deletions
diff --git a/cmake/QtApp.cmake b/cmake/QtApp.cmake index c54bb3e940..ca46690fb7 100644 --- a/cmake/QtApp.cmake +++ b/cmake/QtApp.cmake @@ -38,6 +38,7 @@ function(qt_internal_add_app target) TARGET_COPYRIGHT "${arg_TARGET_COPYRIGHT}" ) qt_internal_add_target_aliases("${target}") + _qt_internal_apply_strict_cpp("${target}") # To mimic the default behaviors of qt_app.prf, we by default enable GUI Windows applications, # but don't enable macOS bundles. diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index f957d87332..c404a6b483 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -2686,6 +2686,7 @@ function(qt_add_module target) endif() qt_internal_add_target_aliases("${target}") qt_skip_warnings_are_errors_when_repo_unclean("${target}") + _qt_internal_apply_strict_cpp("${target}") # Add _private target to link against the private headers: if(NOT ${arg_NO_PRIVATE_MODULE}) @@ -3764,6 +3765,7 @@ function(qt_internal_add_plugin target) endif() qt_internal_add_target_aliases("${target}") qt_skip_warnings_are_errors_when_repo_unclean("${target}") + _qt_internal_apply_strict_cpp("${target}") # Disable linking of plugins against other plugins during static regular and # super builds. The latter causes cyclic dependencies otherwise. @@ -4654,6 +4656,7 @@ function(qt_add_3rdparty_library target) qt_internal_add_qt_repo_known_module(${target}) qt_internal_add_target_aliases(${target}) + _qt_internal_apply_strict_cpp(${target}) if (ANDROID) qt_android_apply_arch_suffix("${target}") @@ -4970,6 +4973,7 @@ function(qt_add_tool target_name) TARGET_COPYRIGHT "${arg_TARGET_COPYRIGHT}" ) qt_internal_add_target_aliases("${target_name}") + _qt_internal_apply_strict_cpp("${target_name}") if (NOT target_name STREQUAL name) set_target_properties(${target_name} PROPERTIES diff --git a/src/corelib/Qt6CoreMacros.cmake b/src/corelib/Qt6CoreMacros.cmake index 008452ea7c..34e5efb5e9 100644 --- a/src/corelib/Qt6CoreMacros.cmake +++ b/src/corelib/Qt6CoreMacros.cmake @@ -1290,3 +1290,19 @@ endif() function(qt_disable_utf8_sources target) set_target_properties("${target}" PROPERTIES QT_NO_UTF8_SOURCE TRUE) endfunction() + +function(_qt_internal_apply_strict_cpp target) + # Disable C, Obj-C and C++ GNU extensions aka no "-std=gnu++11". + # Similar to mkspecs/features/default_post.prf's CONFIG += strict_cpp. + # Allow opt-out via variable. + if(NOT QT_ENABLE_CXX_EXTENSIONS) + get_target_property(target_type "${target}" TYPE) + if(NOT target_type STREQUAL "INTERFACE_LIBRARY") + set_target_properties("${target}" PROPERTIES + CXX_EXTENSIONS OFF + C_EXTENSIONS OFF + OBJC_EXTENSIONS OFF + OBJCXX_EXTENSIONS OFF) + endif() + endif() +endfunction() |