diff options
author | Ben Boeckel <ben.boeckel@kitware.com> | 2020-05-26 13:18:37 (GMT) |
---|---|---|
committer | Ben Boeckel <ben.boeckel@kitware.com> | 2020-05-26 16:50:16 (GMT) |
commit | e63fe4a58863e4a8fe6cee55e6ffd4324f5e10d4 (patch) | |
tree | fd85bc290d57d956465ef4e538f717ceff24bda2 /.gitlab/ci/ctest_test_external.cmake | |
parent | 9893e159cc0f9ae61dc205d52192e1d1fe1ab532 (diff) | |
download | CMake-e63fe4a58863e4a8fe6cee55e6ffd4324f5e10d4.zip CMake-e63fe4a58863e4a8fe6cee55e6ffd4324f5e10d4.tar.gz CMake-e63fe4a58863e4a8fe6cee55e6ffd4324f5e10d4.tar.bz2 |
ci: add a script to run the tests with an external CMake
Diffstat (limited to '.gitlab/ci/ctest_test_external.cmake')
-rw-r--r-- | .gitlab/ci/ctest_test_external.cmake | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/.gitlab/ci/ctest_test_external.cmake b/.gitlab/ci/ctest_test_external.cmake new file mode 100644 index 0000000..1e61d52 --- /dev/null +++ b/.gitlab/ci/ctest_test_external.cmake @@ -0,0 +1,66 @@ +cmake_minimum_required(VERSION 3.8) + +include("${CMAKE_CURRENT_LIST_DIR}/gitlab_ci.cmake") + +set(cmake_args + -C "${CMAKE_CURRENT_LIST_DIR}/configure_$ENV{CMAKE_CONFIGURATION}.cmake") + +# Create an entry in CDash. +ctest_start(Experimental TRACK "${ctest_track}") + +# Gather update information. +find_package(Git) +set(CTEST_UPDATE_VERSION_ONLY ON) +set(CTEST_UPDATE_COMMAND "${GIT_EXECUTABLE}") +ctest_update() + +# Configure the project. +ctest_configure( + OPTIONS "${cmake_args}" + RETURN_VALUE configure_result) + +# Read the files from the build directory. +ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}") + +# We can now submit because we've configured. This is a cmb-superbuild-ism. +ctest_submit(PARTS Update) +ctest_submit(PARTS Configure) + +if (configure_result) + message(FATAL_ERROR + "Failed to configure") +endif () + +include(ProcessorCount) +ProcessorCount(nproc) + +if (CTEST_CMAKE_GENERATOR STREQUAL "Unix Makefiles") + set(CTEST_BUILD_FLAGS "-j${nproc}") +endif () + +ctest_build( + NUMBER_WARNINGS num_warnings + RETURN_VALUE build_result) +ctest_submit(PARTS Build) + +if (build_result) + message(FATAL_ERROR + "Failed to build") +endif () + +if ("$ENV{CTEST_NO_WARNINGS_ALLOWED}" AND num_warnings GREATER 0) + message(FATAL_ERROR + "Found ${num_warnings} warnings (treating as fatal).") +endif () + +include("${CMAKE_CURRENT_LIST_DIR}/ctest_exclusions.cmake") +ctest_test( + PARALLEL_LEVEL "${nproc}" + RETURN_VALUE test_result + EXCLUDE "${test_exclusions}") +ctest_submit(PARTS Test) + +if (test_result) + message(FATAL_ERROR + "Failed to test") +endif () |