CMake/Tests/CMakeBuildTest.cmake.in

54 lines
1.7 KiB
CMake

# create the binary directory
make_directory("@CMAKE_BUILD_TEST_BINARY_DIR@")
# run cmake in the binary directory
message("running: ${CMAKE_COMMAND}")
execute_process(COMMAND "${CMAKE_COMMAND}"
"@CMAKE_BUILD_TEST_SOURCE_DIR@"
"-G@CMAKE_TEST_GENERATOR@"
WORKING_DIRECTORY "@CMAKE_BUILD_TEST_BINARY_DIR@"
RESULT_VARIABLE RESULT)
if(RESULT)
message(FATAL_ERROR "Error running cmake command")
endif(RESULT)
# Now use the --build option to build the project
message("running: ${CMAKE_COMMAND} --build")
execute_process(COMMAND "${CMAKE_COMMAND}"
--build "@CMAKE_BUILD_TEST_BINARY_DIR@" --config Debug
RESULT_VARIABLE RESULT)
if(RESULT)
message(FATAL_ERROR "Error running cmake --build")
endif(RESULT)
# check for configuration types
set(CMAKE_CONFIGURATION_TYPES @CMAKE_CONFIGURATION_TYPES@)
# run the executable out of the Debug directory if there
# are configuration types
if(CMAKE_CONFIGURATION_TYPES)
set(RUN_TEST "@CMAKE_BUILD_TEST_BINARY_DIR@/Debug/COnly")
else(CMAKE_CONFIGURATION_TYPES)
set(RUN_TEST "@CMAKE_BUILD_TEST_BINARY_DIR@/COnly")
endif(CMAKE_CONFIGURATION_TYPES)
# run the test results
message("running [${RUN_TEST}]")
execute_process(COMMAND "${RUN_TEST}" RESULT_VARIABLE RESULT)
if(RESULT)
message(FATAL_ERROR "Error running test COnly")
endif(RESULT)
# build it again with clean and only COnly target
execute_process(COMMAND "${CMAKE_COMMAND}"
--build "@CMAKE_BUILD_TEST_BINARY_DIR@" --config Debug
--clean --target COnly
RESULT_VARIABLE RESULT)
if(RESULT)
message(FATAL_ERROR "Error running cmake --build")
endif(RESULT)
# run it again after clean
execute_process(COMMAND "${RUN_TEST}" RESULT_VARIABLE RESULT)
if(RESULT)
message(FATAL_ERROR "Error running test COnly after clean ")
endif(RESULT)