123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- # Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- # file Copyright.txt or https://cmake.org/licensing for details.
- if(NOT RUN_FROM_CTEST_OR_DART)
- message(FATAL_ERROR "Do not include CTestTargets.cmake directly")
- endif()
- if(NOT PROJECT_BINARY_DIR)
- message(FATAL_ERROR "Do not include(CTest) before calling project().")
- endif()
- # make directories in the binary tree
- file(MAKE_DIRECTORY ${PROJECT_BINARY_DIR}/Testing/Temporary)
- get_filename_component(CMAKE_HOST_PATH ${CMAKE_COMMAND} PATH)
- set(CMAKE_TARGET_PATH ${EXECUTABLE_OUTPUT_PATH})
- find_program(CMAKE_CTEST_COMMAND ctest ${CMAKE_HOST_PATH} ${CMAKE_TARGET_PATH})
- mark_as_advanced(CMAKE_CTEST_COMMAND)
- # Use CTest
- # configure files
- if(CTEST_NEW_FORMAT)
- configure_file(
- ${CMAKE_ROOT}/Modules/DartConfiguration.tcl.in
- ${PROJECT_BINARY_DIR}/CTestConfiguration.ini )
- else()
- configure_file(
- ${CMAKE_ROOT}/Modules/DartConfiguration.tcl.in
- ${PROJECT_BINARY_DIR}/DartConfiguration.tcl )
- endif()
- #
- # Section 3:
- #
- # Custom targets to perform dashboard builds and submissions.
- # These should NOT need to be modified from project to project.
- #
- set(__conf_types "")
- get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
- if(_isMultiConfig)
- # We need to pass the configuration type on the test command line.
- set(__conf_types -C "${CMAKE_CFG_INTDIR}")
- endif()
- # Add convenience targets. Do this at most once in case of nested
- # projects.
- define_property(GLOBAL PROPERTY CTEST_TARGETS_ADDED
- BRIEF_DOCS "Internal property used by CTestTargets module."
- FULL_DOCS "Set by the CTestTargets module to track addition of testing targets."
- )
- get_property(_CTEST_TARGETS_ADDED GLOBAL PROPERTY CTEST_TARGETS_ADDED)
- if(NOT _CTEST_TARGETS_ADDED)
- set_property(GLOBAL PROPERTY CTEST_TARGETS_ADDED 1)
- # For all generators add basic testing targets.
- foreach(mode Experimental Nightly Continuous NightlyMemoryCheck)
- add_custom_target(${mode}
- ${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode}
- USES_TERMINAL
- )
- set_property(TARGET ${mode} PROPERTY RULE_LAUNCH_CUSTOM "")
- set_property(TARGET ${mode} PROPERTY FOLDER "CTestDashboardTargets")
- endforeach()
- # For Makefile generators add more granular targets.
- if("${CMAKE_GENERATOR}" MATCHES "(Ninja|Make)")
- # Make targets for Experimental builds
- foreach(mode Nightly Experimental Continuous)
- foreach(testtype
- Start Update Configure Build Test Coverage MemCheck Submit
- # missing purify
- )
- add_custom_target(${mode}${testtype}
- ${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode}${testtype}
- USES_TERMINAL
- )
- set_property(TARGET ${mode}${testtype} PROPERTY RULE_LAUNCH_CUSTOM "")
- set_property(TARGET ${mode}${testtype} PROPERTY FOLDER "CTestDashboardTargets")
- endforeach()
- endforeach()
- endif()
- # If requested, add an alias that is the equivalent of the built-in "test"
- # or "RUN_TESTS" target:
- if(CTEST_TEST_TARGET_ALIAS)
- add_custom_target(${CTEST_TEST_TARGET_ALIAS}
- ${CMAKE_CTEST_COMMAND} ${__conf_types}
- USES_TERMINAL
- )
- endif()
- endif()
|