diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/corelib/Qt6CoreMacros.cmake | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/corelib/Qt6CoreMacros.cmake b/src/corelib/Qt6CoreMacros.cmake index 46283381a42..dd6108066b6 100644 --- a/src/corelib/Qt6CoreMacros.cmake +++ b/src/corelib/Qt6CoreMacros.cmake @@ -695,6 +695,31 @@ function(_qt_internal_disable_autorcc_zstd_when_not_supported target) endif() endfunction() +# Link given target to PlatformExampleInternal when the target is part of an example build. +function(_qt_internal_link_to_platform_example_internal target) + # The first variable is set when examples are built using ExternalProject_Add. + # The second is set when examples are built in-tree, the scope is in the <repo>/examples subdir. + if(QT_INTERNAL_IS_EXAMPLE_EP_BUILD + OR QT_INTERNAL_IS_EXAMPLE_IN_TREE_BUILD) + target_link_libraries("${target}" PRIVATE + ${QT_CMAKE_EXPORT_NAMESPACE}::PlatformExampleInternal) + endif() +endfunction() + +# Set up warnings as errors for targets built in example projects. +function(_qt_internal_setup_warnings_are_errors_for_example_target target) + # Only enable warnings as errors when the global variable is enabled and the repo is known + # to have clean examples. + if(QT_INTERNAL_IS_EXAMPLE_EP_BUILD + OR QT_INTERNAL_IS_EXAMPLE_IN_TREE_BUILD) + if(WARNINGS_ARE_ERRORS AND QT_REPO_EXAMPLES_WARNINGS_CLEAN) + _qt_internal_set_skip_warnings_are_errors("${target}" FALSE) + else() + _qt_internal_set_skip_warnings_are_errors("${target}" TRUE) + endif() + endif() +endfunction() + function(_qt_internal_create_executable target) if(ANDROID) list(REMOVE_ITEM ARGN "WIN32" "MACOSX_BUNDLE") @@ -727,6 +752,8 @@ function(_qt_internal_create_executable target) endif() _qt_internal_disable_autorcc_zstd_when_not_supported("${target}") + _qt_internal_link_to_platform_example_internal("${target}") + _qt_internal_setup_warnings_are_errors_for_example_target("${target}") _qt_internal_set_up_static_runtime_library("${target}") endfunction() @@ -2834,6 +2861,8 @@ function(_qt_internal_add_library target) cmake_policy(POP) _qt_internal_disable_autorcc_zstd_when_not_supported("${target}") + _qt_internal_link_to_platform_example_internal("${target}") + _qt_internal_setup_warnings_are_errors_for_example_target("${target}") _qt_internal_set_up_static_runtime_library(${target}) if(NOT type_to_create STREQUAL "INTERFACE" AND NOT type_to_create STREQUAL "OBJECT") |
