https://github.com/Kitware/CMake
Raw File
Tip revision: 7f8f6dbf45aa5250281c7e383e3d32599590564b authored by David Cole on 30 December 2011, 16:05:59 UTC
CMake 2.8.7
Tip revision: 7f8f6db
CMakeBuildTest.cmake.in
# create the binary directory
make_directory("@CMAKE_BUILD_TEST_BINARY_DIR@")

# remove the CMakeCache.txt file from the source dir
# if there is one, so that in-source cmake tests
# still pass
message("Remove: @CMAKE_BUILD_TEST_SOURCE_DIR@/CMakeCache.txt")
file(REMOVE "@CMAKE_BUILD_TEST_SOURCE_DIR@/CMakeCache.txt")

# 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/@CMAKE_BUILD_TEST_EXE@")
else(CMAKE_CONFIGURATION_TYPES)
  set(RUN_TEST "@CMAKE_BUILD_TEST_BINARY_DIR@/@CMAKE_BUILD_TEST_EXE@")
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 @CMAKE_BUILD_TEST_EXE@")
endif(RESULT)

# build it again with clean and only @CMAKE_BUILD_TEST_EXE@ target
execute_process(COMMAND "${CMAKE_COMMAND}" 
  --build "@CMAKE_BUILD_TEST_BINARY_DIR@" --config Debug 
  --clean-first --target @CMAKE_BUILD_TEST_EXE@
  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 @CMAKE_BUILD_TEST_EXE@ after clean ")
endif(RESULT)
back to top