77 lines
2.6 KiB
CMake
77 lines
2.6 KiB
CMake
|
# 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()
|