From: Matthias Maier <tamiko@kyomu.43-1.org>
Date: Sun, 8 Dec 2013 16:01:48 +0000 (+0000)
Subject: Quicktests: Remove target-OK prior to compilation
X-Git-Tag: v8.1.0~43
X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c3a6562a740a48ebf3d4de7999554815c92c48ed;p=dealii.git

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
---

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