summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml9
-rw-r--r--.gitlab/ci/configure_common.cmake9
-rw-r--r--.gitlab/ci/configure_debian10_makefiles_inplace.cmake1
-rw-r--r--.gitlab/ci/ctest_standalone.cmake4
-rw-r--r--.gitlab/ci/gitlab_ci.cmake6
-rw-r--r--.gitlab/os-linux.yml24
6 files changed, 51 insertions, 2 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c8110925dd..30710551fe 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -275,6 +275,15 @@ b:fedora35-ninja:
- .linux_builder_tags_qt
- .run_manually
+b:debian10-makefiles-inplace:
+ extends:
+ - .debian10_makefiles_inplace
+ - .cmake_build_linux_standalone
+ - .linux_builder_tags
+ - .run_manually
+ variables:
+ CMAKE_CI_JOB_NIGHTLY: "true"
+
t:fedora35-ninja:
extends:
- .fedora35_ninja
diff --git a/.gitlab/ci/configure_common.cmake b/.gitlab/ci/configure_common.cmake
index a711f3bda4..ed3d18dcdf 100644
--- a/.gitlab/ci/configure_common.cmake
+++ b/.gitlab/ci/configure_common.cmake
@@ -1,4 +1,11 @@
-set(CTEST_USE_LAUNCHERS "ON" CACHE BOOL "")
+if("$ENV{CMAKE_CI_BOOTSTRAP}")
+ # Launchers do not work during bootstrap: no ctest available.
+ set(CTEST_USE_LAUNCHERS "OFF" CACHE BOOL "")
+ # We configure by bootstrapping, so skip the BootstrapTest.
+ set(CMAKE_SKIP_BOOTSTRAP_TEST ON CACHE BOOL "")
+else()
+ set(CTEST_USE_LAUNCHERS "ON" CACHE BOOL "")
+endif()
# We run the install right after the build. Avoid rerunning it when installing.
set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY "ON" CACHE BOOL "")
diff --git a/.gitlab/ci/configure_debian10_makefiles_inplace.cmake b/.gitlab/ci/configure_debian10_makefiles_inplace.cmake
new file mode 100644
index 0000000000..33f0db0c61
--- /dev/null
+++ b/.gitlab/ci/configure_debian10_makefiles_inplace.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")
diff --git a/.gitlab/ci/ctest_standalone.cmake b/.gitlab/ci/ctest_standalone.cmake
index cec2de26b9..9199693aac 100644
--- a/.gitlab/ci/ctest_standalone.cmake
+++ b/.gitlab/ci/ctest_standalone.cmake
@@ -23,6 +23,10 @@ set(CTEST_UPDATE_VERSION_ONLY ON)
set(CTEST_UPDATE_COMMAND "${GIT_EXECUTABLE}")
ctest_update()
+if("$ENV{CMAKE_CI_BOOTSTRAP}")
+ set(CTEST_CONFIGURE_COMMAND "\"${CTEST_SOURCE_DIRECTORY}/bootstrap\" --parallel=${nproc}")
+endif()
+
# Configure the project.
ctest_configure(
OPTIONS "${cmake_args}"
diff --git a/.gitlab/ci/gitlab_ci.cmake b/.gitlab/ci/gitlab_ci.cmake
index 697162c7dd..080c93b2e2 100644
--- a/.gitlab/ci/gitlab_ci.cmake
+++ b/.gitlab/ci/gitlab_ci.cmake
@@ -5,7 +5,11 @@ endif ()
# Set up the source and build paths.
set(CTEST_SOURCE_DIRECTORY "$ENV{CI_PROJECT_DIR}")
-set(CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}/build")
+if("$ENV{CMAKE_CI_INPLACE}")
+ set(CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}")
+else()
+ set(CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}/build")
+endif()
if (NOT "$ENV{CTEST_SOURCE_SUBDIRECTORY}" STREQUAL "")
string(APPEND CTEST_SOURCE_DIRECTORY "/$ENV{CTEST_SOURCE_SUBDIRECTORY}")
endif ()
diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml
index 482ca7dc97..f6a8a19741 100644
--- a/.gitlab/os-linux.yml
+++ b/.gitlab/os-linux.yml
@@ -126,6 +126,17 @@
CMAKE_CONFIGURATION: debian10_aarch64_ninja
CTEST_NO_WARNINGS_ALLOWED: 1
+.debian10_makefiles_inplace:
+ extends: .debian10
+
+ variables:
+ CMAKE_CONFIGURATION: debian10_makefiles_inplace
+ CMAKE_GENERATOR: "Unix Makefiles"
+ CMAKE_CI_BOOTSTRAP: 1
+ CMAKE_CI_INPLACE: 1
+ CMAKE_CI_NO_INSTALL: 1
+ CTEST_NO_WARNINGS_ALLOWED: 1
+
.fedora35_ninja:
extends: .fedora35
@@ -429,6 +440,19 @@
interruptible: true
+.cmake_build_linux_standalone:
+ stage: build
+
+ script:
+ - *before_script_linux
+ - .gitlab/ci/sccache.sh
+ - sccache --start-server
+ - sccache --show-stats
+ - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake"
+ - sccache --show-stats
+
+ interruptible: true
+
.cmake_test_linux_release:
stage: test-ext