diff options
Diffstat (limited to '.gitlab')
27 files changed, 241 insertions, 31 deletions
diff --git a/.gitlab/ci/clang.ps1 b/.gitlab/ci/clang.ps1 new file mode 100755 index 0000000..25d64ba --- /dev/null +++ b/.gitlab/ci/clang.ps1 @@ -0,0 +1,37 @@ +$erroractionpreference = "stop" + +if ("$env:CMAKE_CI_BUILD_NAME".Contains("clang13.0")) { + # LLVM/Clang 13.0 + # https://github.com/llvm/llvm-project/releases/tag/llvmorg-13.0.0 + $filename = "llvm-13.0.0-win-x86_64-1" + $sha256sum = "F1B7CE360DACBC9776D7F84BE714766D60CF3D47492AFE34C45D574D1C597264" +} else { + throw ('unknown CMAKE_CI_BUILD_NAME: ' + "$env:CMAKE_CI_BUILD_NAME") +} +$tarball = "$filename.zip" + +$outdir = $pwd.Path +$outdir = "$outdir\.gitlab" +$ProgressPreference = 'SilentlyContinue' +# This URL is only visible inside of Kitware's network. See above filename table. +Invoke-WebRequest -Uri "https://cmake.org/files/dependencies/internal/$tarball" -OutFile "$outdir\$tarball" +$hash = Get-FileHash "$outdir\$tarball" -Algorithm SHA256 +if ($hash.Hash -ne $sha256sum) { + exit 1 +} + +Add-Type -AssemblyName System.IO.Compression.FileSystem +[System.IO.Compression.ZipFile]::ExtractToDirectory("$outdir\$tarball", "$outdir") +Move-Item -Path "$outdir\$filename" -Destination "$outdir\llvm" + +$bin = "$outdir\llvm\bin" +$null = New-Item -ItemType HardLink -Path "$bin\clang++.exe" -Target "$bin\clang.exe" +$null = New-Item -ItemType HardLink -Path "$bin\clang-cl.exe" -Target "$bin\clang.exe" +$null = New-Item -ItemType HardLink -Path "$bin\clang-cpp.exe" -Target "$bin\clang.exe" +$null = New-Item -ItemType HardLink -Path "$bin\ld.lld.exe" -Target "$bin\lld.exe" +$null = New-Item -ItemType HardLink -Path "$bin\ld64.lld.exe" -Target "$bin\lld.exe" +$null = New-Item -ItemType HardLink -Path "$bin\lld-link.exe" -Target "$bin\lld.exe" +$null = New-Item -ItemType HardLink -Path "$bin\llvm-lib.exe" -Target "$bin\llvm-ar.exe" +$null = New-Item -ItemType HardLink -Path "$bin\llvm-ranlib.exe" -Target "$bin\llvm-ar.exe" +$null = New-Item -ItemType HardLink -Path "$bin\llvm-objcopy.exe" -Target "$bin\llvm-strip.exe" +Clear-Variable -Name bin diff --git a/.gitlab/ci/configure_common.cmake b/.gitlab/ci/configure_common.cmake index a711f3b..ed3d18d 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_aarch64_ninja.cmake b/.gitlab/ci/configure_debian10_aarch64_ninja.cmake index 8e03eef..bbccbcf 100644 --- a/.gitlab/ci/configure_debian10_aarch64_ninja.cmake +++ b/.gitlab/ci/configure_debian10_aarch64_ninja.cmake @@ -1,3 +1,8 @@ +set(CMake_TEST_CTestUpdate_BZR "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_CVS "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_GIT "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_HG "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_SVN "ON" CACHE BOOL "") set(CMake_TEST_FindALSA "ON" CACHE BOOL "") set(CMake_TEST_FindBLAS "All;static=1;Generic" CACHE STRING "") set(CMake_TEST_FindBoost "ON" CACHE BOOL "") @@ -21,7 +26,9 @@ set(CMake_TEST_FindGSL "ON" CACHE BOOL "") set(CMake_TEST_FindGTest "ON" CACHE BOOL "") set(CMake_TEST_FindGTK2 "ON" CACHE BOOL "") set(CMake_TEST_FindIconv "ON" CACHE BOOL "") +set(CMake_TEST_FindICU "ON" CACHE BOOL "") set(CMake_TEST_FindIntl "ON" CACHE BOOL "") +set(CMake_TEST_FindJNI "ON" CACHE BOOL "") set(CMake_TEST_FindJPEG "ON" CACHE BOOL "") set(CMake_TEST_FindJsonCpp "ON" CACHE BOOL "") set(CMake_TEST_FindLAPACK "All;static=1;Generic" CACHE STRING "") diff --git a/.gitlab/ci/configure_debian10_makefiles_inplace.cmake b/.gitlab/ci/configure_debian10_makefiles_inplace.cmake new file mode 100644 index 0000000..33f0db0 --- /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/configure_debian10_ninja.cmake b/.gitlab/ci/configure_debian10_ninja.cmake index d50ab1f..2fcff7a 100644 --- a/.gitlab/ci/configure_debian10_ninja.cmake +++ b/.gitlab/ci/configure_debian10_ninja.cmake @@ -1,3 +1,12 @@ +set(CMake_TEST_CTestUpdate_BZR "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_CVS "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_GIT "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_HG "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_SVN "ON" CACHE BOOL "") +if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") + set(CMake_TEST_CTestUpdate_P4 "ON" CACHE BOOL "") +endif() + set(CMake_TEST_FindALSA "ON" CACHE BOOL "") set(CMake_TEST_FindBLAS "All;static=1;Generic" CACHE STRING "") set(CMake_TEST_FindBoost "ON" CACHE BOOL "") @@ -21,7 +30,9 @@ set(CMake_TEST_FindGSL "ON" CACHE BOOL "") set(CMake_TEST_FindGTest "ON" CACHE BOOL "") set(CMake_TEST_FindGTK2 "ON" CACHE BOOL "") set(CMake_TEST_FindIconv "ON" CACHE BOOL "") +set(CMake_TEST_FindICU "ON" CACHE BOOL "") set(CMake_TEST_FindIntl "ON" CACHE BOOL "") +set(CMake_TEST_FindJNI "ON" CACHE BOOL "") set(CMake_TEST_FindJPEG "ON" CACHE BOOL "") set(CMake_TEST_FindJsonCpp "ON" CACHE BOOL "") set(CMake_TEST_FindLAPACK "All;static=1;Generic" CACHE STRING "") @@ -68,4 +79,8 @@ set(CMake_TEST_JQ "/usr/bin/jq" CACHE PATH "") set(CMake_TEST_Qt5 "ON" CACHE BOOL "") set(CMake_TEST_UseSWIG "ON" CACHE BOOL "") +if (NOT "$ENV{SWIFTC}" STREQUAL "") + set(CMAKE_Swift_COMPILER "$ENV{SWIFTC}" CACHE FILEPATH "") +endif() + include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/.gitlab/ci/configure_fedora35_makefiles.cmake b/.gitlab/ci/configure_fedora35_makefiles.cmake index a482378..9dc5ca9 100644 --- a/.gitlab/ci/configure_fedora35_makefiles.cmake +++ b/.gitlab/ci/configure_fedora35_makefiles.cmake @@ -1,3 +1,11 @@ +set(CMake_TEST_CTestUpdate_BZR "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_GIT "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_HG "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_SVN "ON" CACHE BOOL "") +if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") + set(CMake_TEST_CTestUpdate_P4 "ON" CACHE BOOL "") +endif() + set(CMake_TEST_FindALSA "ON" CACHE BOOL "") set(CMake_TEST_FindBLAS "All;static=1;Generic" CACHE STRING "") set(CMake_TEST_FindBoost "ON" CACHE BOOL "") @@ -21,7 +29,9 @@ set(CMake_TEST_FindGSL "ON" CACHE BOOL "") set(CMake_TEST_FindGTest "ON" CACHE BOOL "") set(CMake_TEST_FindGTK2 "ON" CACHE BOOL "") set(CMake_TEST_FindIconv "ON" CACHE BOOL "") +set(CMake_TEST_FindICU "ON" CACHE BOOL "") set(CMake_TEST_FindIntl "ON" CACHE BOOL "") +set(CMake_TEST_FindJNI "ON" CACHE BOOL "") set(CMake_TEST_FindJPEG "ON" CACHE BOOL "") set(CMake_TEST_FindJsonCpp "ON" CACHE BOOL "") set(CMake_TEST_FindLAPACK "All;static=1;Generic" CACHE STRING "") diff --git a/.gitlab/ci/configure_windows_borland_common.cmake b/.gitlab/ci/configure_windows_borland_common.cmake index 6d66a05..55dce1d 100644 --- a/.gitlab/ci/configure_windows_borland_common.cmake +++ b/.gitlab/ci/configure_windows_borland_common.cmake @@ -1,2 +1,5 @@ +set(CMake_TEST_Java OFF CACHE BOOL "") + set(configure_no_sccache 1) + include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/.gitlab/ci/configure_windows_clang_common.cmake b/.gitlab/ci/configure_windows_clang_common.cmake new file mode 100644 index 0000000..55dce1d --- /dev/null +++ b/.gitlab/ci/configure_windows_clang_common.cmake @@ -0,0 +1,5 @@ +set(CMake_TEST_Java OFF CACHE BOOL "") + +set(configure_no_sccache 1) + +include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/.gitlab/ci/configure_windows_clang_ninja.cmake b/.gitlab/ci/configure_windows_clang_ninja.cmake new file mode 100644 index 0000000..ba19834 --- /dev/null +++ b/.gitlab/ci/configure_windows_clang_ninja.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_clang_common.cmake") diff --git a/.gitlab/ci/configure_windows_clang_nmake.cmake b/.gitlab/ci/configure_windows_clang_nmake.cmake new file mode 100644 index 0000000..ba19834 --- /dev/null +++ b/.gitlab/ci/configure_windows_clang_nmake.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_clang_common.cmake") diff --git a/.gitlab/ci/configure_windows_common.cmake b/.gitlab/ci/configure_windows_common.cmake index a70d165..7467cfd 100644 --- a/.gitlab/ci/configure_windows_common.cmake +++ b/.gitlab/ci/configure_windows_common.cmake @@ -2,5 +2,6 @@ set(BUILD_QtDialog ON CACHE BOOL "") set(BUILD_CursesDialog ON CACHE BOOL "") set(CMAKE_PREFIX_PATH "$ENV{CI_PROJECT_DIR}/.gitlab/qt" CACHE STRING "") set(CMake_TEST_Java OFF CACHE BOOL "") +set(Python_FIND_REGISTRY NEVER CACHE STRING "") include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake") diff --git a/.gitlab/ci/configure_windows_openwatcom_common.cmake b/.gitlab/ci/configure_windows_openwatcom_common.cmake index 6d66a05..55dce1d 100644 --- a/.gitlab/ci/configure_windows_openwatcom_common.cmake +++ b/.gitlab/ci/configure_windows_openwatcom_common.cmake @@ -1,2 +1,5 @@ +set(CMake_TEST_Java OFF CACHE BOOL "") + set(configure_no_sccache 1) + include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/.gitlab/ci/ctest_build.cmake b/.gitlab/ci/ctest_build.cmake index e7a0985..4bb2924 100644 --- a/.gitlab/ci/ctest_build.cmake +++ b/.gitlab/ci/ctest_build.cmake @@ -37,7 +37,7 @@ if ("$ENV{CTEST_NO_WARNINGS_ALLOWED}" AND num_warnings GREATER 0) "Found ${num_warnings} warnings (treating as fatal).") endif () -if (NOT "$ENV{CMake_SKIP_INSTALL}") +if (NOT "$ENV{CMAKE_CI_NO_INSTALL}") ctest_build(APPEND TARGET install RETURN_VALUE install_result) diff --git a/.gitlab/ci/ctest_test_external.cmake b/.gitlab/ci/ctest_standalone.cmake index 48e910b..9199693 100644 --- a/.gitlab/ci/ctest_test_external.cmake +++ b/.gitlab/ci/ctest_standalone.cmake @@ -6,6 +6,14 @@ include("${CMAKE_CURRENT_LIST_DIR}/env_$ENV{CMAKE_CONFIGURATION}.cmake" OPTIONAL set(cmake_args -C "${CMAKE_CURRENT_LIST_DIR}/configure_$ENV{CMAKE_CONFIGURATION}.cmake") +include(ProcessorCount) +ProcessorCount(nproc) +if (NOT "$ENV{CTEST_MAX_PARALLELISM}" STREQUAL "") + if (nproc GREATER "$ENV{CTEST_MAX_PARALLELISM}") + set(nproc "$ENV{CTEST_MAX_PARALLELISM}") + endif () +endif () + # Create an entry in CDash. ctest_start("${ctest_model}" GROUP "${ctest_group}") @@ -15,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}" @@ -33,14 +45,6 @@ if (configure_result) "Failed to configure") endif () -include(ProcessorCount) -ProcessorCount(nproc) -if (NOT "$ENV{CTEST_MAX_PARALLELISM}" STREQUAL "") - if (nproc GREATER "$ENV{CTEST_MAX_PARALLELISM}") - set(nproc "$ENV{CTEST_MAX_PARALLELISM}") - endif () -endif () - if (CTEST_CMAKE_GENERATOR STREQUAL "Unix Makefiles") set(CTEST_BUILD_FLAGS "-j${nproc} -l${nproc}") elseif (CTEST_CMAKE_GENERATOR MATCHES "Ninja") diff --git a/.gitlab/ci/docker/debian10-aarch64/install_deps.sh b/.gitlab/ci/docker/debian10-aarch64/install_deps.sh index d5c5e22..f0228f8 100755 --- a/.gitlab/ci/docker/debian10-aarch64/install_deps.sh +++ b/.gitlab/ci/docker/debian10-aarch64/install_deps.sh @@ -25,6 +25,7 @@ apt-get install -y \ # Packages needed to test CTest. apt-get install -y \ + bzr bzr-xmloutput \ cvs \ subversion \ mercurial @@ -57,6 +58,7 @@ apt-get install -y \ libgsl-dev \ libgtest-dev \ libgtk2.0-dev \ + libicu-dev \ libinput-dev \ libjpeg-dev \ libjsoncpp-dev \ @@ -75,6 +77,7 @@ apt-get install -y \ libxerces-c-dev \ libxml2-dev libxml2-utils \ libxslt-dev xsltproc \ + openjdk-11-jdk \ python2 python2-dev python-numpy pypy pypy-dev \ python3 python3-dev python3-numpy pypy3 pypy3-dev python3-venv \ qtbase5-dev qtbase5-dev-tools \ diff --git a/.gitlab/ci/docker/debian10/install_deps.sh b/.gitlab/ci/docker/debian10/install_deps.sh index d3d6b67..9f50585 100755 --- a/.gitlab/ci/docker/debian10/install_deps.sh +++ b/.gitlab/ci/docker/debian10/install_deps.sh @@ -25,10 +25,15 @@ apt-get install -y \ # Packages needed to test CTest. apt-get install -y \ + bzr bzr-xmloutput \ cvs \ subversion \ mercurial +# Install swift runtime deps. +apt-get install -y \ + libncurses5 + # Packages needed to test find modules. apt-get install -y \ alsa-utils \ @@ -57,6 +62,7 @@ apt-get install -y \ libgsl-dev \ libgtest-dev \ libgtk2.0-dev \ + libicu-dev \ libinput-dev \ libjpeg-dev \ libjsoncpp-dev \ @@ -75,6 +81,7 @@ apt-get install -y \ libxerces-c-dev \ libxml2-dev libxml2-utils \ libxslt-dev xsltproc \ + openjdk-11-jdk \ python2 python2-dev python-numpy pypy pypy-dev \ python3 python3-dev python3-numpy pypy3 pypy3-dev python3-venv \ qtbase5-dev qtbase5-dev-tools \ @@ -86,7 +93,14 @@ apt-get install -y \ apt-get install -y \ libmono-system-windows-forms4.0-cil curl -L -O https://github.com/IronLanguages/ironpython2/releases/download/ipy-2.7.10/ironpython_2.7.10.deb +echo 'e1aceec1d49ffa66e9059a52168a734999dcccc50164a60e2936649cae698f3e ironpython_2.7.10.deb' > ironpython.sha256sum +sha256sum --check ironpython.sha256sum dpkg -i ironpython_2.7.10.deb -rm ironpython_2.7.10.deb +rm ironpython_2.7.10.deb ironpython.sha256sum + +# Perforce +curl -L -O https://www.perforce.com/downloads/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz +tar -C /usr/local/bin -xvzf helix-core-server.tgz -- p4 p4d +rm helix-core-server.tgz apt-get clean diff --git a/.gitlab/ci/docker/fedora35/install_deps.sh b/.gitlab/ci/docker/fedora35/install_deps.sh index 30214af..13c70e6 100755 --- a/.gitlab/ci/docker/fedora35/install_deps.sh +++ b/.gitlab/ci/docker/fedora35/install_deps.sh @@ -38,6 +38,7 @@ dnf install --setopt=install_weak_deps=False -y \ # Packages needed to test CTest. dnf install --setopt=install_weak_deps=False -y \ + breezy \ subversion \ mercurial @@ -68,10 +69,12 @@ dnf install --setopt=install_weak_deps=False -y \ gsl-devel \ gtest-devel \ gtk2-devel \ + java-11-openjdk-devel \ jsoncpp-devel \ lapack-devel \ libarchive-devel \ libcurl-devel \ + libicu-devel \ libinput-devel systemd-devel \ libjpeg-turbo-devel \ libpng-devel \ @@ -106,3 +109,8 @@ curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py python2 get-pip.py rm get-pip.py pip2.7 install numpy + +# Perforce +curl -L -O https://www.perforce.com/downloads/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz +tar -C /usr/local/bin -xvzf helix-core-server.tgz -- p4 p4d +rm helix-core-server.tgz diff --git a/.gitlab/ci/env_debian10_ninja.cmake b/.gitlab/ci/env_debian10_ninja.cmake deleted file mode 100644 index ec252b4..0000000 --- a/.gitlab/ci/env_debian10_ninja.cmake +++ /dev/null @@ -1 +0,0 @@ -set(ENV{MY_RUBY_HOME} "/usr/local/rvm/rubies/ruby-2.7.0") diff --git a/.gitlab/ci/env_debian10_ninja.sh b/.gitlab/ci/env_debian10_ninja.sh new file mode 100644 index 0000000..67d900c --- /dev/null +++ b/.gitlab/ci/env_debian10_ninja.sh @@ -0,0 +1,11 @@ +export MY_RUBY_HOME="/usr/local/rvm/rubies/ruby-2.7.0" + +if test -z "$CI_MERGE_REQUEST_ID"; then + curl -L -O "https://download.swift.org/swift-5.5.3-release/ubuntu1804/swift-5.5.3-RELEASE/swift-5.5.3-RELEASE-ubuntu18.04.tar.gz" + echo '910634e2d97e14c43ed1f29caeb57fd01d10c2ff88cebb79baee1016b52c7492 swift-5.5.3-RELEASE-ubuntu18.04.tar.gz' > swift.sha256sum + sha256sum --check swift.sha256sum + mkdir /opt/swift + tar xzf swift-5.5.3-RELEASE-ubuntu18.04.tar.gz -C /opt/swift --strip-components=2 + rm swift-5.5.3-RELEASE-ubuntu18.04.tar.gz swift.sha256sum + export SWIFTC="/opt/swift/bin/swiftc" +fi diff --git a/.gitlab/ci/env_windows_clang_common.cmake b/.gitlab/ci/env_windows_clang_common.cmake new file mode 100644 index 0000000..fdd668f --- /dev/null +++ b/.gitlab/ci/env_windows_clang_common.cmake @@ -0,0 +1,7 @@ +if("$ENV{CMAKE_CI_BUILD_NAME}" MATCHES "(^|_)gnu(_|$)") + set(ENV{CC} clang) + set(ENV{CXX} clang++) +else() + set(ENV{CC} clang-cl) + set(ENV{CXX} clang-cl) +endif() diff --git a/.gitlab/ci/env_windows_clang_ninja.cmake b/.gitlab/ci/env_windows_clang_ninja.cmake new file mode 100644 index 0000000..f3834a2 --- /dev/null +++ b/.gitlab/ci/env_windows_clang_ninja.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/env_windows_clang_common.cmake") diff --git a/.gitlab/ci/env_windows_clang_nmake.cmake b/.gitlab/ci/env_windows_clang_nmake.cmake new file mode 100644 index 0000000..f3834a2 --- /dev/null +++ b/.gitlab/ci/env_windows_clang_nmake.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/env_windows_clang_common.cmake") diff --git a/.gitlab/ci/gitlab_ci.cmake b/.gitlab/ci/gitlab_ci.cmake index 697162c..080c93b 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 af540f9..f9af14f 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -45,7 +45,7 @@ ### Debian .debian10: - image: "kitware/cmake:ci-debian10-x86_64-2021-11-18" + image: "kitware/cmake:ci-debian10-x86_64-2022-04-22" variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" @@ -57,10 +57,10 @@ variables: CMAKE_CONFIGURATION: debian10_iwyu CTEST_NO_WARNINGS_ALLOWED: 1 - CMake_SKIP_INSTALL: 1 + CMAKE_CI_NO_INSTALL: 1 .debian10_aarch64: - image: "kitware/cmake:ci-debian10-aarch64-2021-11-18" + image: "kitware/cmake:ci-debian10-aarch64-2022-04-22" variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" @@ -69,7 +69,7 @@ ### Fedora .fedora35: - image: "kitware/cmake:ci-fedora35-x86_64-2022-02-01" + image: "kitware/cmake:ci-fedora35-x86_64-2022-04-22" variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes" @@ -83,7 +83,7 @@ variables: CMAKE_CONFIGURATION: fedora35_tidy CTEST_NO_WARNINGS_ALLOWED: 1 - CMake_SKIP_INSTALL: 1 + CMAKE_CI_NO_INSTALL: 1 .fedora35_clang_analyzer: extends: .fedora35 @@ -92,7 +92,7 @@ CMAKE_CONFIGURATION: fedora35_clang_analyzer CMAKE_CI_BUILD_TYPE: Debug CTEST_NO_WARNINGS_ALLOWED: 1 - CMake_SKIP_INSTALL: 1 + CMAKE_CI_NO_INSTALL: 1 .fedora35_sphinx: extends: .fedora35 @@ -101,7 +101,7 @@ CMAKE_CONFIGURATION: fedora35_sphinx CTEST_NO_WARNINGS_ALLOWED: 1 CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx" - CMake_SKIP_INSTALL: 1 + CMAKE_CI_NO_INSTALL: 1 .fedora35_sphinx_package: extends: .fedora35 @@ -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 @@ -216,6 +227,7 @@ GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" CMAKE_ARCH: x86_64 CTEST_LABELS: "CUDA" + CMAKE_CUDA_ARCHITECTURES_NATIVE_CLAMP: 1 .cuda9.2_nvidia: extends: .cuda9.2 @@ -231,6 +243,7 @@ GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" CMAKE_ARCH: x86_64 CTEST_LABELS: "CUDA" + CMAKE_CUDA_ARCHITECTURES_NATIVE_CLAMP: 1 .cuda10.2_nvidia: extends: .cuda10.2 @@ -253,6 +266,7 @@ GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" CMAKE_ARCH: x86_64 CTEST_LABELS: "CUDA" + CMAKE_CUDA_ARCHITECTURES_NATIVE_CLAMP: 1 .cuda11.6_nvidia: extends: .cuda11.6 @@ -451,6 +465,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 @@ -462,7 +489,7 @@ - .gitlab/ci/sccache.sh - sccache --start-server - sccache --show-stats - - "$LAUNCHER build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake" + - "$LAUNCHER build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake" - sccache --show-stats interruptible: true @@ -475,7 +502,7 @@ - .gitlab/ci/sccache.sh - sccache --start-server - sccache --show-stats - - "$LAUNCHER build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake" + - "$LAUNCHER build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake" - sccache --show-stats interruptible: true diff --git a/.gitlab/os-macos.yml b/.gitlab/os-macos.yml index 3a5314c..f36fe6d 100644 --- a/.gitlab/os-macos.yml +++ b/.gitlab/os-macos.yml @@ -52,7 +52,7 @@ variables: CMAKE_CONFIGURATION: macos_package CTEST_NO_WARNINGS_ALLOWED: 1 - CMake_SKIP_INSTALL: 1 + CMAKE_CI_NO_INSTALL: 1 .macos10.10_package: extends: .macos_build @@ -60,7 +60,7 @@ variables: CMAKE_CONFIGURATION: macos10.10_package CTEST_NO_WARNINGS_ALLOWED: 1 - CMake_SKIP_INSTALL: 1 + CMAKE_CI_NO_INSTALL: 1 ### External testing @@ -182,7 +182,7 @@ # Allow the server to already be running. - "sccache --start-server || :" - sccache --show-stats - - "$LAUNCHER build/install/CMake.app/Contents/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake" + - "$LAUNCHER build/install/CMake.app/Contents/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake" - sccache --show-stats interruptible: true diff --git a/.gitlab/os-windows.yml b/.gitlab/os-windows.yml index 3271b5b..4b4656a 100644 --- a/.gitlab/os-windows.yml +++ b/.gitlab/os-windows.yml @@ -87,6 +87,14 @@ variables: CMAKE_CONFIGURATION: windows_borland5.8 +.windows_ninja: + extends: .windows + + variables: + CMAKE_GENERATOR: "Ninja" + CMAKE_CI_BUILD_TYPE: Release + CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true" + .windows_nmake: extends: .windows @@ -119,6 +127,22 @@ variables: CMAKE_CONFIGURATION: windows_vs2022_x64_jom +.windows_clang_ninja: + extends: + - .windows_ninja + - .windows_vcvarsall_vs2022_x64 + + variables: + CMAKE_CONFIGURATION: windows_clang_ninja + +.windows_clang_nmake: + extends: + - .windows_nmake + - .windows_vcvarsall_vs2022_x64 + + variables: + CMAKE_CONFIGURATION: windows_clang_nmake + .windows_msvc_v71_nmake: extends: .windows_nmake @@ -226,7 +250,7 @@ stage: test-ext script: - - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake + - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake interruptible: true @@ -235,7 +259,7 @@ script: - Invoke-Expression -Command .gitlab/ci/vcvarsall.ps1 - - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake + - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake interruptible: true @@ -247,7 +271,7 @@ - $pwdpath = $pwd.Path - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\jom;$env:PATH" - Invoke-Expression -Command .gitlab/ci/vcvarsall.ps1 - - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake + - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake interruptible: true @@ -258,7 +282,21 @@ - Invoke-Expression -Command .gitlab/ci/borland.ps1 - $pwdpath = $pwd.Path - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\bcc\bin;$env:PATH" - - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake + - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake + + interruptible: true + +.cmake_test_windows_clang: + stage: test-ext + + script: + - $pwdpath = $pwd.Path + - powershell -File ".gitlab/ci/ninja.ps1" + - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab;$env:PATH" + - Invoke-Expression -Command .gitlab/ci/clang.ps1 + - Invoke-Expression -Command .gitlab/ci/vcvarsall.ps1 + - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\llvm\bin;$env:PATH" + - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake interruptible: true @@ -268,7 +306,7 @@ script: - Invoke-Expression -Command .gitlab/ci/msvc.ps1 - Invoke-Expression -Command .gitlab/ci/vcvarsall.ps1 - - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake + - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake interruptible: true @@ -283,6 +321,6 @@ - Set-Item -Force -Path "env:EDPATH" -Value "$pwdpath\.gitlab\watcom\eddat" - Set-Item -Force -Path "env:WATCOM" -Value "$pwdpath\.gitlab\watcom" - Set-Item -Force -Path "env:WLINKTMP" -Value "." - - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_test_external.cmake + - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake interruptible: true diff --git a/.gitlab/rules.yml b/.gitlab/rules.yml index 20603f5..8efa304 100644 --- a/.gitlab/rules.yml +++ b/.gitlab/rules.yml @@ -52,6 +52,8 @@ when: on_success - if: '$CMAKE_CI_JOB_NIGHTLY == "true"' when: never + - if: '$CMAKE_CI_PROJECT_CONTINUOUS_BRANCH != null && $CI_COMMIT_BRANCH != null && $CMAKE_CI_PROJECT_CONTINUOUS_BRANCH == $CI_COMMIT_BRANCH && $CMAKE_CI_JOB_CONTINUOUS == "true"' + when: on_success - if: '($CMAKE_CI_NO_MR == "true" && $CI_MERGE_REQUEST_ID)' when: never - if: '$CI_MERGE_REQUEST_ID' |