diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-06-04 18:21:13 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2020-06-04 22:28:06 +0200 |
commit | 37b132cd4e081821ddc261d24abe8f914123547a (patch) | |
tree | 6dd63af256545e02bd27030fb2f4a0cb2713d681 /cmake/QtBuildInternals/QtStandaloneTestTemplateProject/CMakeLists.txt | |
parent | 94dcb5454f0f8f144568dff7a9dd1316046ee197 (diff) |
CMake: Fix standalone tests to work properly on reconfiguration
And also fix qt-cmake-standalone-test to work for prefix builds.
The gist of it is that we have to protect tests not to be installed
into the Qt install prefix, but we also have to make sure that the
CMAKE_INSTALL_PREFIX is not changed globally (via cache value),
so that reconfiguration still works.
This took way too long to figure out.
Amends d6272d774c7415186aa398e59f234d0073458072
Fixes: QTBUG-84346
Change-Id: I18c29574c9957fe05b86f701c8c14ec07e0f045b
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Diffstat (limited to 'cmake/QtBuildInternals/QtStandaloneTestTemplateProject/CMakeLists.txt')
-rw-r--r-- | cmake/QtBuildInternals/QtStandaloneTestTemplateProject/CMakeLists.txt | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/cmake/QtBuildInternals/QtStandaloneTestTemplateProject/CMakeLists.txt b/cmake/QtBuildInternals/QtStandaloneTestTemplateProject/CMakeLists.txt index d77192d563..a84c567b5a 100644 --- a/cmake/QtBuildInternals/QtStandaloneTestTemplateProject/CMakeLists.txt +++ b/cmake/QtBuildInternals/QtStandaloneTestTemplateProject/CMakeLists.txt @@ -6,14 +6,12 @@ find_package(Qt6 REQUIRED COMPONENTS BuildInternals) # Includes QtSetup and friends for private CMake API. qt_build_internals_set_up_private_api() -# Restore original install prefix. -qt_restore_backed_up_install_prefix() - # Find all StandaloneTestsConfig.cmake files, and include them # This will find all Qt packages that are required for standalone tests. # It will find more packages that needed for a certain test, but will ensure any test can # be built. qt_get_standalone_tests_confg_files_path(standalone_tests_config_path) + file(GLOB config_files "${standalone_tests_config_path}/*") foreach(file ${config_files}) include("${file}") @@ -29,5 +27,10 @@ else() set(absolute_project_path "${QT_STANDALONE_TEST_PATH}") endif() +# Just before adding the test, change the local (non-cache) install prefix to something other than +# the Qt install prefix, so that tests don't try to install and pollute the Qt install prefix. +# Needs to be called after qt_get_standalone_tests_confg_files_path(). +qt_set_up_fake_standalone_tests_install_prefix() + # Add the test project path as a subdirectory project. add_subdirectory("${absolute_project_path}" "build_dir") |