diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2023-08-18 15:48:21 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2023-08-23 16:21:58 +0200 |
commit | b6849849392cf14ead014833976d1926504985d2 (patch) | |
tree | ea1ead1865e73fa9a12c91bc0162f88098955a3c /cmake/QtBuildInternals/QtBuildInternalsConfig.cmake | |
parent | f081578ce097e5b437a0b1beee84f7056e9099f8 (diff) |
CMake: Fix find_package(Qt6*Tools) in non-qtbase tests
Tests in non-qtbase modules could not find_package their own Qt6*Tools
packages, because add_subdirectory(tests) was called before the config
files for Qt6*Tools were created.
The creation of tools config files is done in QtPostProcess.cmake, which
was included in qt_build_repo_end(). Move that include into its own
macro, qt_build_repo_post_process() and remove it from
qt_build_repo_end(). Call qt_build_repo_post_process() before the
'tests' directory is added in qt_build_repo().
Every call site of qt_build_repo_end() must now be adjusted and call
qt_build_repo_post_process().
Task-number: QTBUG-88264
Change-Id: I80d60a1b5c0e9b715c298ef4934b562f815432d1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake/QtBuildInternals/QtBuildInternalsConfig.cmake')
-rw-r--r-- | cmake/QtBuildInternals/QtBuildInternalsConfig.cmake | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake index 66ac9be510..ceb070ec0c 100644 --- a/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake +++ b/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake @@ -408,6 +408,7 @@ macro(qt_internal_prepare_single_repo_target_set_build) endmacro() macro(qt_build_repo_begin) + set(QT_INTERNAL_REPO_POST_PROCESS_CALLED FALSE) list(APPEND CMAKE_MESSAGE_CONTEXT "${PROJECT_NAME}") qt_build_internals_set_up_private_api() @@ -543,10 +544,21 @@ macro(qt_build_repo_begin) endif() endmacro() -macro(qt_build_repo_end) +# Runs delayed actions on some of the Qt targets. +# Can be called either explicitly or as part of qt_build_repo_end(). +macro(qt_build_repo_post_process) + if(QT_INTERNAL_REPO_POST_PROCESS_CALLED) + return() + endif() if(NOT QT_BUILD_STANDALONE_TESTS) - # Delayed actions on some of the Qt targets: include(QtPostProcess) + endif() + set(QT_INTERNAL_REPO_POST_PROCESS_CALLED TRUE) +endmacro() + +macro(qt_build_repo_end) + if(NOT QT_BUILD_STANDALONE_TESTS) + qt_build_repo_post_process() # Install the repo-specific cmake find modules. qt_path_join(__qt_repo_install_dir ${QT_CONFIG_INSTALL_DIR} ${INSTALL_CMAKE_NAMESPACE}) @@ -601,6 +613,8 @@ macro(qt_build_repo) qt_build_repo_impl_find_package_tests() qt_build_repo_impl_src() qt_build_repo_impl_tools() + + qt_build_repo_post_process() qt_build_repo_impl_tests() qt_build_repo_end() |