summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/ctest_start/test.cmake.in
diff options
context:
space:
mode:
authorKyle Edwards <kyle.edwards@kitware.com>2018-01-25 19:04:12 (GMT)
committerKyle Edwards <kyle.edwards@kitware.com>2018-01-26 14:27:22 (GMT)
commit74092d92bffa26b0e17da638dabcbc462c3f407a (patch)
treef12f7c866e358a25094acd17c41d11e9e75804bd /Tests/RunCMake/ctest_start/test.cmake.in
parent7c30a3a3c321575ee8f3bd82b9e617456c2a7396 (diff)
downloadCMake-74092d92bffa26b0e17da638dabcbc462c3f407a.zip
CMake-74092d92bffa26b0e17da638dabcbc462c3f407a.tar.gz
CMake-74092d92bffa26b0e17da638dabcbc462c3f407a.tar.bz2
cmCTestScriptHandler: Add new field ShouldRunCurrentScript
This is to avoid scope issues with CTEST_RUN_CURRENT_SCRIPT. If ctest_start() is called within a function scope, the value of CTEST_RUN_CURRENT_SCRIPT that it sets doesn't make it to the global scope. With this change, ctest_start() no longer sets CTEST_RUN_CURRENT_SCRIPT, and instead sets a field directly in cmCTestScriptHandler. The old behavior of CTEST_RUN_CURRENT_SCRIPT has also been kept for projects and tests that rely on setting it.
Diffstat (limited to 'Tests/RunCMake/ctest_start/test.cmake.in')
-rw-r--r--Tests/RunCMake/ctest_start/test.cmake.in10
1 files changed, 9 insertions, 1 deletions
diff --git a/Tests/RunCMake/ctest_start/test.cmake.in b/Tests/RunCMake/ctest_start/test.cmake.in
index 21e3fad..0a27942 100644
--- a/Tests/RunCMake/ctest_start/test.cmake.in
+++ b/Tests/RunCMake/ctest_start/test.cmake.in
@@ -9,5 +9,13 @@ set(CTEST_CMAKE_GENERATOR_PLATFORM "@RunCMake_GENERATOR_PLATFORM@")
set(CTEST_CMAKE_GENERATOR_TOOLSET "@RunCMake_GENERATOR_TOOLSET@")
set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}")
+function(setup_tests)
+ ctest_start(${ctest_start_args})
+endfunction()
+
set(ctest_start_args "@CASE_CTEST_START_ARGS@")
-ctest_start(${ctest_start_args})
+if("@CASE_NAME@" STREQUAL "FunctionScope")
+ setup_tests()
+else()
+ ctest_start(${ctest_start_args})
+endif()