From 2e85f6fa29da4e7f94a95656b470fa28b760dcab Mon Sep 17 00:00:00 2001 From: Sandro Santilli Date: Tue, 28 May 2024 23:20:58 +0200 Subject: [PATCH] Use a centralized directory for files created by ctest Defines a QGIS_TEST_TMP_DIR variable in top-level CMakeLists.txt and then defines QGIS_CUSTOM_CONFIG_PATH and TMPDIR to be under that directory for individual tests. Closes GH-50587 Closes GH-48884 --- CMakeLists.txt | 5 +++++ cmake/UsePythonTest.cmake | 5 ++++- tests/src/CMakeLists.txt | 6 +++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c0c02a97f25..adce77c2611 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,11 @@ endif() # don't relink it only the shared object changes set(CMAKE_LINK_DEPENDS_NO_SHARED ON) +# This needs to be set before any add_directory in order to be visible +# by the subdirectories +set(QGIS_TEST_TMP_DIR "${CMAKE_BINARY_DIR}/tmp") +message (STATUS "Ctest Temp Directory set to: ${QGIS_TEST_TMP_DIR}") + ############################################################# # Project and version set(CPACK_PACKAGE_VERSION_MAJOR "3") diff --git a/cmake/UsePythonTest.cmake b/cmake/UsePythonTest.cmake index 874d22c3a64..18593162ca9 100644 --- a/cmake/UsePythonTest.cmake +++ b/cmake/UsePythonTest.cmake @@ -77,6 +77,9 @@ macro(ADD_PYTHON_TEST TESTNAME FILENAME) set_tests_properties(${TESTNAME} PROPERTIES TIMEOUT ${TEST_TIMEOUT}) endif() - set_tests_properties(${TESTNAME} PROPERTIES FIXTURES_REQUIRED SOURCETREE) + set_tests_properties(${TESTNAME} PROPERTIES + FIXTURES_REQUIRED SOURCETREE + ENVIRONMENT "TMPDIR=${QGIS_TEST_TMP_DIR};QGIS_CUSTOM_CONFIG_PATH=${QGIS_TEST_TMP_DIR}/config" + ) endmacro(ADD_PYTHON_TEST) diff --git a/tests/src/CMakeLists.txt b/tests/src/CMakeLists.txt index a653575ad4d..92f88aec1eb 100644 --- a/tests/src/CMakeLists.txt +++ b/tests/src/CMakeLists.txt @@ -26,7 +26,11 @@ if (ENABLE_TESTS) set_tests_properties(${TESTNAME} PROPERTIES LABELS ${ARG_QGIS_TEST_LABELS}) endif() - set_tests_properties(${TESTNAME} PROPERTIES FIXTURES_REQUIRED SOURCETREE) + set_tests_properties(${TESTNAME} PROPERTIES + FIXTURES_REQUIRED SOURCETREE + ENVIRONMENT "TMPDIR=${QGIS_TEST_TMP_DIR};QGIS_CUSTOM_CONFIG_PATH=${QGIS_TEST_TMP_DIR}/config" + ) + target_compile_definitions(${TESTNAME} PRIVATE "CMAKE_SOURCE_DIR=\"${CMAKE_SOURCE_DIR}\"") endmacro()