CTestTargets.cmake 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. IF(NOT RUN_FROM_CTEST_OR_DART)
  2. MESSAGE(FATAL_ERROR "Do not incldue CTestTargets.cmake directly")
  3. ENDIF(NOT RUN_FROM_CTEST_OR_DART)
  4. # make directories in the binary tree
  5. FILE(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/Testing/Temporary)
  6. GET_FILENAME_COMPONENT(CMAKE_HOST_PATH ${CMAKE_COMMAND} PATH)
  7. SET(CMAKE_TARGET_PATH ${EXECUTABLE_OUTPUT_PATH})
  8. FIND_PROGRAM(CMAKE_CTEST_COMMAND ctest ${CMAKE_HOST_PATH} ${CMAKE_TARGET_PATH})
  9. MARK_AS_ADVANCED(CMAKE_CTEST_COMMAND)
  10. # Use CTest
  11. # configure files
  12. IF(CTEST_NEW_FORMAT)
  13. CONFIGURE_FILE(
  14. ${CMAKE_ROOT}/Modules/DartConfiguration.tcl.in
  15. ${PROJECT_BINARY_DIR}/CTestConfiguration.ini )
  16. ELSE(CTEST_NEW_FORMAT)
  17. CONFIGURE_FILE(
  18. ${CMAKE_ROOT}/Modules/DartConfiguration.tcl.in
  19. ${PROJECT_BINARY_DIR}/DartConfiguration.tcl )
  20. ENDIF(CTEST_NEW_FORMAT)
  21. #
  22. # Section 3:
  23. #
  24. # Custom targets to perform dashboard builds and submissions.
  25. # These should NOT need to be modified from project to project.
  26. #
  27. SET(__conf_types "")
  28. IF(CMAKE_CONFIGURATION_TYPES)
  29. # We need to pass the configuration type on the test command line.
  30. SET(__conf_types -C "${CMAKE_CFG_INTDIR}")
  31. ENDIF(CMAKE_CONFIGURATION_TYPES)
  32. # Add convenience targets. Do this at most once in case of nested
  33. # projects.
  34. DEFINE_PROPERTY(GLOBAL PROPERTY CTEST_TARGETS_ADDED
  35. BRIEF_DOCS "Internal property used by CTestTargets module."
  36. FULL_DOCS "Set by the CTestTargets module to track addition of testing targets."
  37. )
  38. GET_PROPERTY(_CTEST_TARGETS_ADDED GLOBAL PROPERTY CTEST_TARGETS_ADDED)
  39. IF(NOT _CTEST_TARGETS_ADDED)
  40. SET_PROPERTY(GLOBAL PROPERTY CTEST_TARGETS_ADDED 1)
  41. # For all generators add basic testing targets.
  42. FOREACH(mode Experimental Nightly Continuous NightlyMemoryCheck)
  43. ADD_CUSTOM_TARGET(${mode}
  44. ${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode}
  45. )
  46. ENDFOREACH(mode)
  47. # For Makefile generators add more granular targets.
  48. IF("${CMAKE_GENERATOR}" MATCHES Make)
  49. # Make targets for Experimental builds
  50. FOREACH(mode Nightly Experimental Continuous)
  51. FOREACH(testtype
  52. Start Update Configure Build Test Coverage MemCheck Submit
  53. # missing purify
  54. )
  55. ADD_CUSTOM_TARGET(${mode}${testtype}
  56. ${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode}${testtype}
  57. )
  58. ENDFOREACH(testtype)
  59. ENDFOREACH(mode)
  60. ENDIF("${CMAKE_GENERATOR}" MATCHES Make)
  61. ENDIF(NOT _CTEST_TARGETS_ADDED)