From 4d9fc28569a3bfc2722098ca0f3bdac284cc9187 Mon Sep 17 00:00:00 2001 From: maier Date: Sun, 8 Dec 2013 16:01:48 +0000 Subject: [PATCH] Quicktests: Remove target-OK prior to compilation Remove target-OK prior to compilation of target with the help of RULE_LAUNCH_COMPILE. This is a cleaner solution because the removal is only triggered if target is actually (re)built. Additionally, reintroduce the ADD_CUSTOM_COMMAND and ADD_CUSTOM_TARGET splitting so that also quicktests only rerun if they actually have to... git-svn-id: https://svn.dealii.org/trunk@31941 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/tests/quick_tests/CMakeLists.txt | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/deal.II/tests/quick_tests/CMakeLists.txt b/deal.II/tests/quick_tests/CMakeLists.txt index 2a37c13820..f3b7d4a8fe 100644 --- a/deal.II/tests/quick_tests/CMakeLists.txt +++ b/deal.II/tests/quick_tests/CMakeLists.txt @@ -30,32 +30,36 @@ MACRO(make_quicktest test_basename build_name mpi_run) STRING(TOLOWER ${build_name} _build_lowercase) SET(_target ${test_basename}.${_build_lowercase}) LIST(APPEND ALL_TESTS "${_target}") + ADD_EXECUTABLE(${_target} EXCLUDE_FROM_ALL ${test_basename}.cc) DEAL_II_INSOURCE_SETUP_TARGET(${_target} ${build_name}) + # Remove ${_target}-OK prior to compilation: + SET_PROPERTY(TARGET ${_target} PROPERTY RULE_LAUNCH_COMPILE + "rm -f ${CMAKE_CURRENT_BINARY_DIR}/${_target}-OK &&" + ) + IF("${mpi_run}" STREQUAL "") SET(_command ./${_target}) ELSE() SET(_command mpirun -n ${mpi_run} ./${_target}) ENDIF() - ADD_CUSTOM_TARGET(${_target}.run - DEPENDS kill-${_target}-OK - DEPENDS ${_target} + + ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${_target}-OK COMMAND ${_command} > ${_target}-OK 2>&1 ||(echo "${_target}: RUN failed. Output:" && cat ${_target}-OK && rm ${_target}-OK && exit 1) - COMMAND echo "${_target}: PASSED." + DEPENDS ${_target} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) - # this is a hack to make sure the -OK file is deleted - # even if compilation fails. - ADD_CUSTOM_TARGET(kill-${_target}-OK - COMMAND rm -f ${_target}-OK - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ADD_CUSTOM_TARGET(${_target}.run + COMMAND echo "${_target}: PASSED." + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${_target}-OK ) # make sure kill is run before running the task -- 2.39.5