Ver código fonte

ENH: Added test to make sure custom commands are not built more than once in a single build. This tests for a bug introduced by one fix and fixed by another fix for bug#4377.

Brad King 18 anos atrás
pai
commit
87853ed828

+ 7 - 0
Tests/CustomCommand/CMakeLists.txt

@@ -230,6 +230,8 @@ ADD_EXECUTABLE(check_command_line
   ${CMAKE_CURRENT_BINARY_DIR}/check_command_line.c)
 ADD_CUSTOM_COMMAND(
   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/command_line_check
+  COMMAND ${CMAKE_COMMAND} -DMARK_FILE=${CMAKE_CURRENT_BINARY_DIR}/check_mark.txt
+  -P ${CMAKE_CURRENT_SOURCE_DIR}/check_mark.cmake
   COMMAND ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/check_command_line
   ${CHECK_ARGS}
   VERBATIM
@@ -246,3 +248,8 @@ ADD_CUSTOM_TARGET(do_check_command_line ALL
   COMMENT "Checking custom target command line escapes ($dollar-signs$)"
   )
 ADD_DEPENDENCIES(do_check_command_line check_command_line)
+
+ADD_CUSTOM_TARGET(pre_check_command_line
+  COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_CURRENT_BINARY_DIR}/check_mark.txt
+  )
+ADD_DEPENDENCIES(do_check_command_line pre_check_command_line)

+ 5 - 0
Tests/CustomCommand/check_mark.cmake

@@ -0,0 +1,5 @@
+IF(EXISTS "${MARK_FILE}")
+  MESSAGE(FATAL_ERROR "Custom command run more than once!")
+ELSE(EXISTS "${MARK_FILE}")
+  FILE(WRITE "${MARK_FILE}" "check for running custom command twice\n")
+ENDIF(EXISTS "${MARK_FILE}")