diff --git a/Modules/CTestUseLaunchers.cmake b/Modules/CTestUseLaunchers.cmake index 1cf20eb879..dc90513a9c 100644 --- a/Modules/CTestUseLaunchers.cmake +++ b/Modules/CTestUseLaunchers.cmake @@ -24,7 +24,9 @@ # include(CTestUseLaunchers), it will use the value of the ENV variable # to initialize a CTEST_USE_LAUNCHERS cache variable. This cache # variable initialization only occurs if CTEST_USE_LAUNCHERS is not -# already defined. +# already defined. If CTEST_USE_LAUNCHERS is on in a ctest -S script +# the ctest_configure command will add -DCTEST_USE_LAUNCHERS:BOOL=TRUE +# to the cmake command used to configure the project. if(NOT DEFINED CTEST_USE_LAUNCHERS AND DEFINED ENV{CTEST_USE_LAUNCHERS_DEFAULT}) set(CTEST_USE_LAUNCHERS "$ENV{CTEST_USE_LAUNCHERS_DEFAULT}" diff --git a/Source/CTest/cmCTestConfigureCommand.cxx b/Source/CTest/cmCTestConfigureCommand.cxx index 62802effd1..73e893df3f 100644 --- a/Source/CTest/cmCTestConfigureCommand.cxx +++ b/Source/CTest/cmCTestConfigureCommand.cxx @@ -102,6 +102,10 @@ cmCTestGenericHandler* cmCTestConfigureCommand::InitializeHandler() cmakeConfigureCommand += "\""; } + if (this->Makefile->IsOn("CTEST_USE_LAUNCHERS")) { + cmakeConfigureCommand += " \"-DCTEST_USE_LAUNCHERS:BOOL=TRUE\""; + } + cmakeConfigureCommand += " \"-G"; cmakeConfigureCommand += cmakeGeneratorName; cmakeConfigureCommand += "\""; diff --git a/Tests/RunCMake/ctest_build/CMakeLists.txt.in b/Tests/RunCMake/ctest_build/CMakeLists.txt.in index 82cb7c4af6..133ae3662b 100644 --- a/Tests/RunCMake/ctest_build/CMakeLists.txt.in +++ b/Tests/RunCMake/ctest_build/CMakeLists.txt.in @@ -1,4 +1,5 @@ cmake_minimum_required(VERSION 3.1) +@CASE_CMAKELISTS_PREFIX_CODE@ project(CTestBuild@CASE_NAME@ NONE) include(CTest) add_test(NAME RunCMakeVersion COMMAND "${CMAKE_COMMAND}" --version) diff --git a/Tests/RunCMake/ctest_build/RunCMakeTest.cmake b/Tests/RunCMake/ctest_build/RunCMakeTest.cmake index 324f25c50f..1092d2ad41 100644 --- a/Tests/RunCMake/ctest_build/RunCMakeTest.cmake +++ b/Tests/RunCMake/ctest_build/RunCMakeTest.cmake @@ -12,6 +12,11 @@ run_ctest_build(BuildQuiet QUIET) function(run_BuildFailure) set(CASE_CMAKELISTS_SUFFIX_CODE [[ add_custom_target(BuildFailure ALL COMMAND command-does-not-exist) +]]) + set(CASE_CMAKELISTS_PREFIX_CODE [[ +if(NOT CTEST_USE_LAUNCHERS) + message(FATAL_ERROR "CTEST_USE_LAUNCHERS not set") +endif() ]]) set(CASE_TEST_PREFIX_CODE [[ cmake_policy(SET CMP0061 NEW) diff --git a/Tests/RunCMake/ctest_build/test.cmake.in b/Tests/RunCMake/ctest_build/test.cmake.in index 768f1c632f..6f15ec98e6 100644 --- a/Tests/RunCMake/ctest_build/test.cmake.in +++ b/Tests/RunCMake/ctest_build/test.cmake.in @@ -9,6 +9,7 @@ set(CTEST_CMAKE_GENERATOR "@RunCMake_GENERATOR@") set(CTEST_CMAKE_GENERATOR_PLATFORM "@RunCMake_GENERATOR_PLATFORM@") set(CTEST_CMAKE_GENERATOR_TOOLSET "@RunCMake_GENERATOR_TOOLSET@") set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}") +set(CTEST_USE_LAUNCHERS TRUE) set(ctest_build_args "@CASE_CTEST_BUILD_ARGS@") ctest_start(Experimental)