cmake_minimum_required(VERSION 3.5) set(TEST_SUCCESS TRUE) function(run_test_case NAME WHAT) set(_message "Testing that launchers are used when running ${WHAT}") message(STATUS "${_message}...") # Settings: set(CTEST_DASHBOARD_SOURCE "@CMake_SOURCE_DIR@/Tests/CTestTestLaunchers") set(CTEST_DASHBOARD_ROOT "@CMake_BINARY_DIR@/Tests/CTestTestLaunchers") set(CTEST_SITE "@SITE@") set(CTEST_BUILD_NAME "Launchers-@BUILDNAME@-CTestTestLaunchers") set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_SOURCE}/${NAME}") set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${NAME}-bin") set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@") set(CTEST_CMAKE_GENERATOR_PLATFORM "@CMAKE_GENERATOR_PLATFORM@") set(CTEST_CMAKE_GENERATOR_TOOLSET "@CMAKE_GENERATOR_TOOLSET@") set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}") set(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}") ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY}) file(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" " CMAKE_CXX_FLAGS:STRING=@CMAKE_CXX_FLAGS@ CMAKE_C_FLAGS:STRING=@CMAKE_C_FLAGS@ CMAKE_C_COMPILER:STRING=@CMAKE_C_COMPILER@ CMAKE_CXX_COMPILER:STRING=@CMAKE_CXX_COMPILER@ CMAKE_C_COMPILER_ARG1:STRING=@CMAKE_C_COMPILER_ARG1@ CMAKE_CXX_COMPILER_ARG1:STRING=@CMAKE_CXX_COMPILER_ARG1@ ") ctest_start(Experimental) ctest_configure(OPTIONS "-DCTEST_USE_LAUNCHERS=1") ctest_build(NUMBER_ERRORS error_count) if("${error_count}" STREQUAL "0") set(TEST_SUCCESS FALSE PARENT_SCOPE) message(STATUS "${_message}... FAIL") else() message(STATUS "${_message}... PASS") endif() endfunction() run_test_case(launcher_compiler_test_project "the compiler") run_test_case(launcher_linker_test_project "the linker") run_test_case(launcher_custom_command_test_project "a custom command") if(TEST_SUCCESS) message("CTEST_TEST_LAUNCHER_SUCCESS") endif()