summaryrefslogtreecommitdiffstats
path: root/cmake/QtBuildInternals/QtStandaloneTestTemplateProject/CMakeLists.txt
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2020-06-04 18:21:13 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2020-06-04 22:28:06 +0200
commit37b132cd4e081821ddc261d24abe8f914123547a (patch)
tree6dd63af256545e02bd27030fb2f4a0cb2713d681 /cmake/QtBuildInternals/QtStandaloneTestTemplateProject/CMakeLists.txt
parent94dcb5454f0f8f144568dff7a9dd1316046ee197 (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.txt9
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")