cmake/Tests/RunCMake/ctest_build/RunCMakeTest.cmake

94 lines
2.6 KiB
CMake
Raw Normal View History

2015-08-17 11:37:30 +02:00
include(RunCTest)
2022-11-03 08:47:52 +01:00
set(LANG NONE)
2015-08-17 11:37:30 +02:00
set(CASE_CTEST_BUILD_ARGS "")
2020-02-01 23:06:01 +01:00
set(RunCMake_USE_LAUNCHERS TRUE)
set(RunCMake_USE_CUSTOM_BUILD_COMMAND FALSE)
2015-08-17 11:37:30 +02:00
function(run_ctest_build CASE_NAME)
set(CASE_CTEST_BUILD_ARGS "${ARGN}")
run_ctest(${CASE_NAME})
endfunction()
run_ctest_build(BuildQuiet QUIET)
2021-09-14 00:13:48 +02:00
run_ctest_build(ParallelLevel PARALLEL_LEVEL 1)
2015-08-17 11:37:30 +02:00
2023-12-07 09:12:54 +01:00
block()
set(LANG CXX)
configure_file("${RunCMake_SOURCE_DIR}/BuildFailure.cxx" "${RunCMake_BINARY_DIR}/BuildFailure/BuildFailure.cxx" COPYONLY)
set(CASE_CMAKELISTS_SUFFIX_CODE [=[
add_executable(BuildFailure BuildFailure.cxx)
]=])
2017-04-14 19:02:05 +02:00
set(CASE_CMAKELISTS_PREFIX_CODE [[
if(NOT CTEST_USE_LAUNCHERS)
message(FATAL_ERROR "CTEST_USE_LAUNCHERS not set")
endif()
2015-08-17 11:37:30 +02:00
]])
2023-12-07 09:12:54 +01:00
set(CASE_TEST_PREFIX_CODE "")
2015-08-17 11:37:30 +02:00
set(CASE_TEST_SUFFIX_CODE [[
if (ctest_build_return_value)
message("ctest_build returned non-zero")
else()
message("ctest_build returned zero")
endif()
]])
run_ctest(BuildFailure)
if (RunCMake_GENERATOR MATCHES "Makefiles")
2023-12-07 09:12:54 +01:00
set(LANG NONE)
2023-07-02 19:51:09 +02:00
set(CASE_TEST_PREFIX_CODE [[
cmake_policy(VERSION 3.2)
2023-12-07 09:12:54 +01:00
]])
set(CASE_CMAKELISTS_SUFFIX_CODE [[
add_custom_target(BuildFailure ALL COMMAND command-does-not-exist)
2023-07-02 19:51:09 +02:00
]])
2015-08-17 11:37:30 +02:00
run_ctest(BuildFailure-CMP0061-OLD)
endif()
2023-12-07 09:12:54 +01:00
endblock()
2015-11-17 17:22:37 +01:00
function(run_BuildChangeId)
set(CASE_TEST_PREFIX_CODE [[
set(CTEST_CHANGE_ID "<>1")
]])
run_ctest(BuildChangeId)
endfunction()
run_BuildChangeId()
2020-02-01 23:06:01 +01:00
2022-08-04 22:12:04 +02:00
function(run_SubdirTarget)
set(CASE_CMAKELISTS_SUFFIX_CODE [=[
file(WRITE ${CMAKE_CURRENT_SOURCE_DIR}/subdir/CMakeLists.txt [[
add_custom_target(target_in_subdir COMMAND ${CMAKE_COMMAND} -E touch target_in_subdir.out VERBATIM)
]])
add_subdirectory(subdir)
]=])
set(CASE_CTEST_BUILD_ARGS TARGET target_in_subdir)
run_ctest(SubdirTarget)
endfunction()
run_SubdirTarget()
2020-02-01 23:06:01 +01:00
set(RunCMake_USE_CUSTOM_BUILD_COMMAND TRUE)
2021-09-14 00:13:48 +02:00
set(RunCMake_BUILD_COMMAND "${FAKE_BUILD_COMMAND_EXE}")
run_ctest(BuildCommandFailure)
unset(RunCMake_BUILD_COMMAND)
set(RunCMake_USE_LAUNCHERS FALSE)
2020-02-01 23:06:01 +01:00
set(RunCMake_BUILD_COMMAND "${COLOR_WARNING}")
run_ctest(IgnoreColor)
unset(RunCMake_BUILD_COMMAND)
2022-11-03 08:47:52 +01:00
set(RunCMake_USE_CUSTOM_BUILD_COMMAND FALSE)
if(RunCMake_GENERATOR MATCHES "Ninja")
function(run_NinjaLauncherSingleBuildFailure)
set(LANG C)
set(RunCMake_USE_LAUNCHERS TRUE)
set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/NinjaLauncherSingleBuildFailure")
configure_file("${RunCMake_SOURCE_DIR}/error.c" "${RunCMake_TEST_SOURCE_DIR}/error.c" COPYONLY)
set(CASE_CMAKELISTS_SUFFIX_CODE [=[
add_executable(error error.c)
]=])
run_ctest(NinjaLauncherSingleBuildFailure)
endfunction()
run_NinjaLauncherSingleBuildFailure()
endif()