123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- # 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_GENERATOR@"
- -A "@CMAKE_GENERATOR_PLATFORM@"
- -T "@CMAKE_GENERATOR_TOOLSET@"
- WORKING_DIRECTORY "@CMAKE_BUILD_TEST_BINARY_DIR@"
- RESULT_VARIABLE RESULT)
- if(RESULT)
- message(FATAL_ERROR "Error running cmake command")
- endif()
- # 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()
- # run the executable out of the Debug directory if using a
- # multi-config generator
- set(_isMultiConfig @_isMultiConfig@)
- if(_isMultiConfig)
- set(RUN_TEST "@CMAKE_BUILD_TEST_BINARY_DIR@/Debug/@CMAKE_BUILD_TEST_EXE@")
- else()
- set(RUN_TEST "@CMAKE_BUILD_TEST_BINARY_DIR@/@CMAKE_BUILD_TEST_EXE@")
- endif()
- # 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()
- # 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()
- # 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()
|