| # This "ctest -S" script may be configured to drive a nightly dashboard on any |
| # Linux machine. |
| # |
| set(CTEST_BINARY_DIRECTORY "@binary_dir@") |
| set(CTEST_BUILD_NAME "@BUILDNAME@") |
| set(CTEST_SITE "@SITE@") |
| set(CTEST_SOURCE_DIRECTORY "@source_dir@") |
| set(PROCESSOR_COUNT "@PROCESSOR_COUNT@") |
| |
| # Assume a Linux build, with a make that supports -j. Modify this script if |
| # assumption is ever invalid. |
| # |
| if(PROCESSOR_COUNT) |
| set(CTEST_BUILD_FLAGS "-j${PROCESSOR_COUNT}") |
| endif() |
| |
| set(CTEST_CMAKE_GENERATOR "Unix Makefiles") |
| set(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}") |
| |
| message("Cleaning binary dir '${CTEST_BINARY_DIRECTORY}'") |
| ctest_empty_binary_directory("${CTEST_BINARY_DIRECTORY}") |
| |
| # Intentionally no ctest_update step in this script. This script is run as a |
| # "Contract" test on a CMake dashboard submission using the just-built ctest |
| # as the driver. The download step in the Contract CMakeLists file takes care |
| # of setting up the source tree before calling this ctest -S script. The idea |
| # is that the source tree will be the same every day, so there should not be |
| # an "update" step for this build. |
| |
| message("Configuring CSE in binary dir '${CTEST_BINARY_DIRECTORY}'") |
| set_property(GLOBAL PROPERTY SubProject "CSE-toplevel") |
| set_property(GLOBAL PROPERTY Label "CSE-toplevel") |
| |
| ctest_start("Experimental") |
| |
| set(CSE_TOPLEVEL_OPTIONS |
| -DEXTERNAL_PROJECT_DASHBOARD_BUILD:BOOL=ON |
| -DEXTERNAL_PROJECT_TESTS:BOOL=ON |
| -DCSE_INSTALL_PREFIX:PATH=${CTEST_BINARY_DIRECTORY}/built |
| -DCSE_SUBSET:STRING=ALL |
| -DCTEST_SITE:STRING=${CTEST_SITE} |
| ) |
| |
| ctest_configure(OPTIONS "${CSE_TOPLEVEL_OPTIONS}") |
| |
| # The configure step produces a file listing the CSE packages and dependencies. |
| # This file also generates Project.xml and stores it in ${PROJECT_XML}. |
| # |
| set(subprojects "") |
| if(EXISTS "${CTEST_BINARY_DIRECTORY}/CSEBuildtimeDepends.cmake") |
| message("Including CSEBuildtimeDepends.cmake") |
| include("${CTEST_BINARY_DIRECTORY}/CSEBuildtimeDepends.cmake") |
| set(subprojects ${CSE_ALL_SORTED}) |
| message("Submitting Project.xml") |
| ctest_submit(FILES ${PROJECT_XML}) |
| endif() |
| |
| message("Submitting CSE configure results") |
| ctest_submit() |
| |
| if(subprojects) |
| message("Building by looping over subprojects...") |
| foreach(subproject ${subprojects}) |
| message("########## ${subproject} ##########") |
| set_property(GLOBAL PROPERTY SubProject "${subproject}") |
| set_property(GLOBAL PROPERTY Label "${subproject}") |
| ctest_build(TARGET "${subproject}" APPEND) |
| message("Submitting ${subproject} build results") |
| ctest_submit(PARTS build) |
| endforeach() |
| else() |
| message("Building all...") |
| ctest_build(APPEND) |
| message("Submitting build results") |
| ctest_submit(PARTS build) |
| endif() |