summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
authorMorten Sørvig <[email protected]>2025-11-12 12:59:28 +0100
committerMorten Sørvig <[email protected]>2025-11-27 03:22:05 +0100
commit2171f26db5c8d701032a73110ba53bb66095a60c (patch)
tree0db67685af0b73c6d95ffaf00f97870ad16ff5d3 /cmake
parent127f758d7829c8f60c3991666d5315c898da718b (diff)
CMake: Pass WORKING_DIRECTORY to add_test only if it's non empty
Otherwise when targeting WASM cmake shows a lot of Policy CMP0174 is not set warnings. Pick-to: 6.8 6.10 Change-Id: I8ba99e9a87b42c17ea4c1afce50cbfb156ac5b1c Reviewed-by: Alexandru Croitor <[email protected]>
Diffstat (limited to 'cmake')
-rw-r--r--cmake/QtTestHelpers.cmake25
1 files changed, 20 insertions, 5 deletions
diff --git a/cmake/QtTestHelpers.cmake b/cmake/QtTestHelpers.cmake
index 52183d09203..06228ac41de 100644
--- a/cmake/QtTestHelpers.cmake
+++ b/cmake/QtTestHelpers.cmake
@@ -821,13 +821,22 @@ function(qt_internal_add_test name)
qt_internal_collect_command_environment(test_env_path test_env_plugin_path)
+ set(add_test_args "")
+ if(test_working_dir)
+ list(APPEND add_test_args WORKING_DIRECTORY "${test_working_dir}")
+ endif()
+
if(arg_NO_WRAPPER OR QT_NO_TEST_WRAPPERS)
if(QT_BUILD_TESTS_BATCHED)
message(FATAL_ERROR "Wrapperless tests are unspupported with test batching")
endif()
- add_test(NAME "${testname}" COMMAND ${test_executable} ${extra_test_args}
- WORKING_DIRECTORY "${test_working_dir}")
+
+
+ add_test(NAME "${testname}"
+ COMMAND ${test_executable} ${extra_test_args}
+ ${add_test_args}
+ )
set_property(TEST "${testname}" APPEND PROPERTY
ENVIRONMENT "PATH=${test_env_path}"
"QT_TEST_RUNNING_IN_CTEST=1"
@@ -838,7 +847,7 @@ function(qt_internal_add_test name)
qt_internal_create_test_script(NAME "${testname}"
COMMAND "${test_executable}"
ARGS "${extra_test_args}"
- WORKING_DIRECTORY "${test_working_dir}"
+ ${add_test_args}
OUTPUT_FILE "${test_wrapper_file}"
ENVIRONMENT "QT_TEST_RUNNING_IN_CTEST" 1
"PATH" "${test_env_path}"
@@ -1089,8 +1098,14 @@ for this function. Will be ignored")
if(is_in_batch)
_qt_internal_test_batch_target_name(executable_name)
endif()
+
+ set(add_test_working_dir "")
+ if(arg_WORKING_DIRECTORY)
+ list(APPEND add_test_working_dir WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}")
+ endif()
+
add_test(NAME "${arg_NAME}" COMMAND "${CMAKE_COMMAND}" "-P" "${arg_OUTPUT_FILE}"
- WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}")
+ ${add_test_working_dir})
# If crosscompiling is enabled, we should avoid run cmake in emulator environment.
# Prepend emulator to test command in generated cmake script instead. Keep in mind that
@@ -1111,7 +1126,7 @@ for this function. Will be ignored")
"\${env_test_args}"
${command_args}
OUTPUT_FILE "${arg_OUTPUT_FILE}"
- WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}"
+ ${add_test_working_dir}
ENVIRONMENT ${arg_ENVIRONMENT}
PRE_RUN "separate_arguments(env_test_args NATIVE_COMMAND \
\"\$ENV{TESTARGS}\")"