summaryrefslogtreecommitdiffstats
path: root/.gitlab
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab')
-rwxr-xr-x.gitlab/ci/borland.ps137
-rwxr-xr-x.gitlab/ci/clang.ps137
-rw-r--r--.gitlab/ci/configure_common.cmake9
-rw-r--r--.gitlab/ci/configure_cuda11.6_clang.cmake3
-rw-r--r--.gitlab/ci/configure_cuda11.6_nvidia.cmake3
-rw-r--r--.gitlab/ci/configure_debian10_aarch64_ninja.cmake5
-rw-r--r--.gitlab/ci/configure_debian10_makefiles_inplace.cmake1
-rw-r--r--.gitlab/ci/configure_debian10_ninja.cmake13
-rw-r--r--.gitlab/ci/configure_fedora34_clang_analyzer.cmake1
-rw-r--r--.gitlab/ci/configure_fedora34_tidy.cmake3
-rw-r--r--.gitlab/ci/configure_fedora35_asan.cmake (renamed from .gitlab/ci/configure_fedora34_asan.cmake)2
-rw-r--r--.gitlab/ci/configure_fedora35_clang_analyzer.cmake1
-rw-r--r--.gitlab/ci/configure_fedora35_common.cmake (renamed from .gitlab/ci/configure_fedora34_common.cmake)0
-rw-r--r--.gitlab/ci/configure_fedora35_makefiles.cmake (renamed from .gitlab/ci/configure_fedora34_makefiles.cmake)8
-rw-r--r--.gitlab/ci/configure_fedora35_ninja.cmake (renamed from .gitlab/ci/configure_fedora34_ninja.cmake)2
-rw-r--r--.gitlab/ci/configure_fedora35_ninja_multi.cmake (renamed from .gitlab/ci/configure_fedora34_ninja_multi.cmake)0
-rw-r--r--.gitlab/ci/configure_fedora35_sphinx.cmake (renamed from .gitlab/ci/configure_fedora34_sphinx.cmake)0
-rw-r--r--.gitlab/ci/configure_fedora35_sphinx_package.cmake (renamed from .gitlab/ci/configure_fedora34_sphinx_package.cmake)0
-rw-r--r--.gitlab/ci/configure_fedora35_tidy.cmake3
-rw-r--r--.gitlab/ci/configure_windows_borland5.5.cmake1
-rw-r--r--.gitlab/ci/configure_windows_borland5.8.cmake1
-rw-r--r--.gitlab/ci/configure_windows_borland_common.cmake5
-rw-r--r--.gitlab/ci/configure_windows_clang_common.cmake5
-rw-r--r--.gitlab/ci/configure_windows_clang_ninja.cmake1
-rw-r--r--.gitlab/ci/configure_windows_clang_nmake.cmake1
-rw-r--r--.gitlab/ci/configure_windows_common.cmake1
-rw-r--r--.gitlab/ci/configure_windows_msvc_common.cmake2
-rw-r--r--.gitlab/ci/configure_windows_msvc_v71_nmake.cmake1
-rw-r--r--.gitlab/ci/configure_windows_openwatcom1.9.cmake1
-rw-r--r--.gitlab/ci/configure_windows_openwatcom_common.cmake5
-rw-r--r--.gitlab/ci/configure_windows_vs2019_x64.cmake1
-rw-r--r--.gitlab/ci/configure_windows_vs2019_x64_ninja.cmake1
-rw-r--r--.gitlab/ci/configure_windows_vs2022_x64.cmake5
-rw-r--r--.gitlab/ci/configure_windows_vs2022_x64_jom.cmake1
-rw-r--r--.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake8
-rw-r--r--.gitlab/ci/configure_windows_vs2022_x64_nmake.cmake1
-rw-r--r--.gitlab/ci/configure_windows_vs_common.cmake10
-rw-r--r--.gitlab/ci/configure_windows_vs_common_ninja.cmake13
-rw-r--r--.gitlab/ci/ctest_build.cmake2
-rw-r--r--.gitlab/ci/ctest_exclusions.cmake7
-rw-r--r--.gitlab/ci/ctest_memcheck_fedora35_asan.lsan.supp (renamed from .gitlab/ci/ctest_memcheck_fedora34_asan.lsan.supp)0
-rw-r--r--.gitlab/ci/ctest_standalone.cmake (renamed from .gitlab/ci/ctest_test_external.cmake)20
-rw-r--r--.gitlab/ci/docker/cuda11.6/Dockerfile9
-rwxr-xr-x.gitlab/ci/docker/cuda11.6/install_deps.sh20
-rw-r--r--.gitlab/ci/docker/cuda11.6/llvm-snapshot.gpg.key52
-rw-r--r--.gitlab/ci/docker/cuda11.6/llvm.list2
-rwxr-xr-x.gitlab/ci/docker/debian10-aarch64/install_deps.sh2
-rwxr-xr-x.gitlab/ci/docker/debian10/install_deps.sh15
-rw-r--r--.gitlab/ci/docker/fedora35/Dockerfile (renamed from .gitlab/ci/docker/fedora34/Dockerfile)4
-rwxr-xr-x.gitlab/ci/docker/fedora35/install_deps.sh (renamed from .gitlab/ci/docker/fedora34/install_deps.sh)9
-rwxr-xr-x.gitlab/ci/docker/fedora35/install_ispc.sh (renamed from .gitlab/ci/docker/fedora34/install_ispc.sh)0
-rwxr-xr-x.gitlab/ci/docker/fedora35/install_rvm.sh (renamed from .gitlab/ci/docker/fedora34/install_rvm.sh)0
-rw-r--r--.gitlab/ci/env_cuda11.6_clang.sh3
-rw-r--r--.gitlab/ci/env_debian10_ninja.cmake1
-rw-r--r--.gitlab/ci/env_debian10_ninja.sh11
-rw-r--r--.gitlab/ci/env_fedora35_asan.sh (renamed from .gitlab/ci/env_fedora34_asan.sh)0
-rw-r--r--.gitlab/ci/env_fedora35_clang_analyzer.sh (renamed from .gitlab/ci/env_fedora34_clang_analyzer.sh)0
-rw-r--r--.gitlab/ci/env_fedora35_makefiles.cmake (renamed from .gitlab/ci/env_fedora34_makefiles.cmake)0
-rw-r--r--.gitlab/ci/env_windows_clang_common.cmake7
-rw-r--r--.gitlab/ci/env_windows_clang_ninja.cmake1
-rw-r--r--.gitlab/ci/env_windows_clang_nmake.cmake1
-rw-r--r--.gitlab/ci/gitlab_ci.cmake6
-rwxr-xr-x.gitlab/ci/jom.ps115
-rwxr-xr-x.gitlab/ci/msvc.ps131
-rwxr-xr-x.gitlab/ci/ninja-nightly.ps19
-rwxr-xr-x.gitlab/ci/ninja.ps15
-rwxr-xr-x.gitlab/ci/openwatcom.ps125
-rwxr-xr-x.gitlab/ci/vcvarsall.ps12
-rw-r--r--.gitlab/os-linux.yml123
-rw-r--r--.gitlab/os-macos.yml6
-rw-r--r--.gitlab/os-windows.yml221
-rw-r--r--.gitlab/rules.yml2
-rw-r--r--.gitlab/upload.yml4
73 files changed, 721 insertions, 86 deletions
diff --git a/.gitlab/ci/borland.ps1 b/.gitlab/ci/borland.ps1
new file mode 100755
index 0000000..146a047
--- /dev/null
+++ b/.gitlab/ci/borland.ps1
@@ -0,0 +1,37 @@
+$erroractionpreference = "stop"
+
+if ("$env:CMAKE_CONFIGURATION".Contains("borland5.5")) {
+ # Borland C++ 5.5 Free Command-line Tools
+ # https://web.archive.org/web/20110402064356/https://www.embarcadero.com/products/cbuilder/free-compiler
+ $filename = "bcc5.5-1"
+ $sha256sum = "895B76F8F1AD8030F31ACE239EBC623DC7379C121A540F55F611B93F3CB9AF52"
+} elseif ("$env:CMAKE_CONFIGURATION".Contains("borland5.8")) {
+ # Borland C++ Builder 2006
+ # https://web.archive.org/web/20060303030019/https://www.borland.com/us/products/cbuilder/index.html
+ $filename = "bcc5.8-1"
+ $sha256sum = "C30981BFD540C933E76D82D873DEE05E7482F34F68E309065DE0D181C95F77E3"
+} else {
+ throw ('unknown CMAKE_CONFIGURATION: ' + "$env:CMAKE_CONFIGURATION")
+}
+$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\bcc"
+
+$tools = "bcc32", "ilink32"
+foreach ($tool in $tools) {
+ $cfg = Get-Content -path "$outdir\bcc\bin\$tool.cfg.in" -Raw
+ $cfg = $cfg -replace "@BCC_ROOT@","$outdir\bcc"
+ $cfg | Set-Content -path "$outdir\bcc\bin\$tool.cfg"
+}
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_cuda11.6_clang.cmake b/.gitlab/ci/configure_cuda11.6_clang.cmake
new file mode 100644
index 0000000..e13ca88
--- /dev/null
+++ b/.gitlab/ci/configure_cuda11.6_clang.cmake
@@ -0,0 +1,3 @@
+set(CMake_TEST_CUDA "Clang" CACHE STRING "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
diff --git a/.gitlab/ci/configure_cuda11.6_nvidia.cmake b/.gitlab/ci/configure_cuda11.6_nvidia.cmake
new file mode 100644
index 0000000..519699b
--- /dev/null
+++ b/.gitlab/ci/configure_cuda11.6_nvidia.cmake
@@ -0,0 +1,3 @@
+set(CMake_TEST_CUDA "NVIDIA" CACHE STRING "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
diff --git a/.gitlab/ci/configure_debian10_aarch64_ninja.cmake b/.gitlab/ci/configure_debian10_aarch64_ninja.cmake
index 8e03eef..5431ab7 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 "")
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..8cf3835 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 "")
@@ -68,4 +77,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_fedora34_clang_analyzer.cmake b/.gitlab/ci/configure_fedora34_clang_analyzer.cmake
deleted file mode 100644
index e00f8a7..0000000
--- a/.gitlab/ci/configure_fedora34_clang_analyzer.cmake
+++ /dev/null
@@ -1 +0,0 @@
-include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora34_common.cmake")
diff --git a/.gitlab/ci/configure_fedora34_tidy.cmake b/.gitlab/ci/configure_fedora34_tidy.cmake
deleted file mode 100644
index 9c79303..0000000
--- a/.gitlab/ci/configure_fedora34_tidy.cmake
+++ /dev/null
@@ -1,3 +0,0 @@
-set(CMake_RUN_CLANG_TIDY ON CACHE BOOL "")
-
-include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora34_common.cmake")
diff --git a/.gitlab/ci/configure_fedora34_asan.cmake b/.gitlab/ci/configure_fedora35_asan.cmake
index c22cdb7..84fefad 100644
--- a/.gitlab/ci/configure_fedora34_asan.cmake
+++ b/.gitlab/ci/configure_fedora35_asan.cmake
@@ -1,4 +1,4 @@
set(CMAKE_C_FLAGS "-fsanitize=address" CACHE STRING "")
set(CMAKE_CXX_FLAGS "-fsanitize=address" CACHE STRING "")
-include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora34_common.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora35_common.cmake")
diff --git a/.gitlab/ci/configure_fedora35_clang_analyzer.cmake b/.gitlab/ci/configure_fedora35_clang_analyzer.cmake
new file mode 100644
index 0000000..761a323
--- /dev/null
+++ b/.gitlab/ci/configure_fedora35_clang_analyzer.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora35_common.cmake")
diff --git a/.gitlab/ci/configure_fedora34_common.cmake b/.gitlab/ci/configure_fedora35_common.cmake
index 4484e26..4484e26 100644
--- a/.gitlab/ci/configure_fedora34_common.cmake
+++ b/.gitlab/ci/configure_fedora35_common.cmake
diff --git a/.gitlab/ci/configure_fedora34_makefiles.cmake b/.gitlab/ci/configure_fedora35_makefiles.cmake
index a482378..91ed55b 100644
--- a/.gitlab/ci/configure_fedora34_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 "")
diff --git a/.gitlab/ci/configure_fedora34_ninja.cmake b/.gitlab/ci/configure_fedora35_ninja.cmake
index 629f792..e6143b7 100644
--- a/.gitlab/ci/configure_fedora34_ninja.cmake
+++ b/.gitlab/ci/configure_fedora35_ninja.cmake
@@ -8,4 +8,4 @@ set(CMAKE_CXX_FLAGS_RELEASE "-O3" CACHE STRING "")
# Cover compilation with C++11 only and not higher standards.
set(CMAKE_CXX_STANDARD "11" CACHE STRING "")
-include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora34_common.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora35_common.cmake")
diff --git a/.gitlab/ci/configure_fedora34_ninja_multi.cmake b/.gitlab/ci/configure_fedora35_ninja_multi.cmake
index efb4b84..efb4b84 100644
--- a/.gitlab/ci/configure_fedora34_ninja_multi.cmake
+++ b/.gitlab/ci/configure_fedora35_ninja_multi.cmake
diff --git a/.gitlab/ci/configure_fedora34_sphinx.cmake b/.gitlab/ci/configure_fedora35_sphinx.cmake
index 90d159b..90d159b 100644
--- a/.gitlab/ci/configure_fedora34_sphinx.cmake
+++ b/.gitlab/ci/configure_fedora35_sphinx.cmake
diff --git a/.gitlab/ci/configure_fedora34_sphinx_package.cmake b/.gitlab/ci/configure_fedora35_sphinx_package.cmake
index e839de8..e839de8 100644
--- a/.gitlab/ci/configure_fedora34_sphinx_package.cmake
+++ b/.gitlab/ci/configure_fedora35_sphinx_package.cmake
diff --git a/.gitlab/ci/configure_fedora35_tidy.cmake b/.gitlab/ci/configure_fedora35_tidy.cmake
new file mode 100644
index 0000000..752d241
--- /dev/null
+++ b/.gitlab/ci/configure_fedora35_tidy.cmake
@@ -0,0 +1,3 @@
+set(CMake_RUN_CLANG_TIDY ON CACHE BOOL "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora35_common.cmake")
diff --git a/.gitlab/ci/configure_windows_borland5.5.cmake b/.gitlab/ci/configure_windows_borland5.5.cmake
new file mode 100644
index 0000000..82c4178
--- /dev/null
+++ b/.gitlab/ci/configure_windows_borland5.5.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_borland_common.cmake")
diff --git a/.gitlab/ci/configure_windows_borland5.8.cmake b/.gitlab/ci/configure_windows_borland5.8.cmake
new file mode 100644
index 0000000..82c4178
--- /dev/null
+++ b/.gitlab/ci/configure_windows_borland5.8.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_borland_common.cmake")
diff --git a/.gitlab/ci/configure_windows_borland_common.cmake b/.gitlab/ci/configure_windows_borland_common.cmake
new file mode 100644
index 0000000..55dce1d
--- /dev/null
+++ b/.gitlab/ci/configure_windows_borland_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_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 112846a..a70d165 100644
--- a/.gitlab/ci/configure_windows_common.cmake
+++ b/.gitlab/ci/configure_windows_common.cmake
@@ -1,4 +1,5 @@
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 "")
diff --git a/.gitlab/ci/configure_windows_msvc_common.cmake b/.gitlab/ci/configure_windows_msvc_common.cmake
new file mode 100644
index 0000000..6d66a05
--- /dev/null
+++ b/.gitlab/ci/configure_windows_msvc_common.cmake
@@ -0,0 +1,2 @@
+set(configure_no_sccache 1)
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
diff --git a/.gitlab/ci/configure_windows_msvc_v71_nmake.cmake b/.gitlab/ci/configure_windows_msvc_v71_nmake.cmake
new file mode 100644
index 0000000..166690a
--- /dev/null
+++ b/.gitlab/ci/configure_windows_msvc_v71_nmake.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_msvc_common.cmake")
diff --git a/.gitlab/ci/configure_windows_openwatcom1.9.cmake b/.gitlab/ci/configure_windows_openwatcom1.9.cmake
new file mode 100644
index 0000000..f29c3f4
--- /dev/null
+++ b/.gitlab/ci/configure_windows_openwatcom1.9.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_openwatcom_common.cmake")
diff --git a/.gitlab/ci/configure_windows_openwatcom_common.cmake b/.gitlab/ci/configure_windows_openwatcom_common.cmake
new file mode 100644
index 0000000..55dce1d
--- /dev/null
+++ b/.gitlab/ci/configure_windows_openwatcom_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_vs2019_x64.cmake b/.gitlab/ci/configure_windows_vs2019_x64.cmake
new file mode 100644
index 0000000..c7d41ea
--- /dev/null
+++ b/.gitlab/ci/configure_windows_vs2019_x64.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_vs_common.cmake")
diff --git a/.gitlab/ci/configure_windows_vs2019_x64_ninja.cmake b/.gitlab/ci/configure_windows_vs2019_x64_ninja.cmake
new file mode 100644
index 0000000..c078f90
--- /dev/null
+++ b/.gitlab/ci/configure_windows_vs2019_x64_ninja.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_vs_common_ninja.cmake")
diff --git a/.gitlab/ci/configure_windows_vs2022_x64.cmake b/.gitlab/ci/configure_windows_vs2022_x64.cmake
index 7c024a8..c7d41ea 100644
--- a/.gitlab/ci/configure_windows_vs2022_x64.cmake
+++ b/.gitlab/ci/configure_windows_vs2022_x64.cmake
@@ -1,4 +1 @@
-set(CMake_TEST_WIX_NO_VERIFY "ON" CACHE BOOL "")
-set(CMake_TEST_Java OFF CACHE BOOL "")
-
-include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_vs_common.cmake")
diff --git a/.gitlab/ci/configure_windows_vs2022_x64_jom.cmake b/.gitlab/ci/configure_windows_vs2022_x64_jom.cmake
new file mode 100644
index 0000000..166690a
--- /dev/null
+++ b/.gitlab/ci/configure_windows_vs2022_x64_jom.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_msvc_common.cmake")
diff --git a/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake b/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake
index e1ae81e..c078f90 100644
--- a/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake
+++ b/.gitlab/ci/configure_windows_vs2022_x64_ninja.cmake
@@ -1,7 +1 @@
-set(CMake_TEST_WIX_NO_VERIFY "ON" CACHE BOOL "")
-set(CMake_TEST_GUI "ON" CACHE BOOL "")
-set(CMake_TEST_FindOpenGL "ON" CACHE BOOL "")
-set(CMake_TEST_IPO_WORKS_C "ON" CACHE BOOL "")
-set(CMake_TEST_IPO_WORKS_CXX "ON" CACHE BOOL "")
-
-include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_common.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_vs_common_ninja.cmake")
diff --git a/.gitlab/ci/configure_windows_vs2022_x64_nmake.cmake b/.gitlab/ci/configure_windows_vs2022_x64_nmake.cmake
new file mode 100644
index 0000000..166690a
--- /dev/null
+++ b/.gitlab/ci/configure_windows_vs2022_x64_nmake.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_msvc_common.cmake")
diff --git a/.gitlab/ci/configure_windows_vs_common.cmake b/.gitlab/ci/configure_windows_vs_common.cmake
new file mode 100644
index 0000000..962f03d
--- /dev/null
+++ b/.gitlab/ci/configure_windows_vs_common.cmake
@@ -0,0 +1,10 @@
+set(CMake_TEST_WIX_NO_VERIFY "ON" CACHE BOOL "")
+set(CMake_TEST_FindODBC "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_Fortran "OFF" CACHE BOOL "")
+set(CMake_TEST_Java OFF CACHE BOOL "")
+set(CMake_TEST_MFC "ON" CACHE BOOL "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
diff --git a/.gitlab/ci/configure_windows_vs_common_ninja.cmake b/.gitlab/ci/configure_windows_vs_common_ninja.cmake
new file mode 100644
index 0000000..1ae1a66
--- /dev/null
+++ b/.gitlab/ci/configure_windows_vs_common_ninja.cmake
@@ -0,0 +1,13 @@
+set(CMake_TEST_WIX_NO_VERIFY "ON" CACHE BOOL "")
+set(CMake_TEST_GUI "ON" CACHE BOOL "")
+set(CMake_TEST_FindODBC "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenGL "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_Fortran "OFF" CACHE BOOL "")
+set(CMake_TEST_IPO_WORKS_C "ON" CACHE BOOL "")
+set(CMake_TEST_IPO_WORKS_CXX "ON" CACHE BOOL "")
+set(CMake_TEST_MFC "ON" CACHE BOOL "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_common.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_exclusions.cmake b/.gitlab/ci/ctest_exclusions.cmake
index 3460d48..89a5ace 100644
--- a/.gitlab/ci/ctest_exclusions.cmake
+++ b/.gitlab/ci/ctest_exclusions.cmake
@@ -20,6 +20,13 @@ if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "_asan")
)
endif()
+if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "_jom")
+ list(APPEND test_exclusions
+ # JOM often fails with "Couldn't change working directory to ...".
+ "^ExternalProject$"
+ )
+endif()
+
string(REPLACE ";" "|" test_exclusions "${test_exclusions}")
if (test_exclusions)
set(test_exclusions "(${test_exclusions})")
diff --git a/.gitlab/ci/ctest_memcheck_fedora34_asan.lsan.supp b/.gitlab/ci/ctest_memcheck_fedora35_asan.lsan.supp
index 8ec1a03..8ec1a03 100644
--- a/.gitlab/ci/ctest_memcheck_fedora34_asan.lsan.supp
+++ b/.gitlab/ci/ctest_memcheck_fedora35_asan.lsan.supp
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/cuda11.6/Dockerfile b/.gitlab/ci/docker/cuda11.6/Dockerfile
new file mode 100644
index 0000000..27cdf8b
--- /dev/null
+++ b/.gitlab/ci/docker/cuda11.6/Dockerfile
@@ -0,0 +1,9 @@
+FROM nvidia/cuda:11.6.0-devel-ubuntu20.04
+MAINTAINER Ben Boeckel <ben.boeckel@kitware.com>
+
+COPY llvm.list /etc/apt/sources.list.d/llvm.list
+COPY llvm-snapshot.gpg.key /root/llvm-snapshot.gpg.key
+RUN apt-key add /root/llvm-snapshot.gpg.key
+
+COPY install_deps.sh /root/install_deps.sh
+RUN sh /root/install_deps.sh
diff --git a/.gitlab/ci/docker/cuda11.6/install_deps.sh b/.gitlab/ci/docker/cuda11.6/install_deps.sh
new file mode 100755
index 0000000..cb18c83
--- /dev/null
+++ b/.gitlab/ci/docker/cuda11.6/install_deps.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+set -e
+
+apt-get update
+
+# Install dependency without interaction.
+env DEBIAN_FRONTEND=noninteractive \
+ TZ=America/New_York \
+ apt-get install -y \
+ tzdata
+
+# Install development tools.
+apt-get install -y \
+ g++ \
+ clang-13 \
+ curl \
+ git
+
+apt-get clean
diff --git a/.gitlab/ci/docker/cuda11.6/llvm-snapshot.gpg.key b/.gitlab/ci/docker/cuda11.6/llvm-snapshot.gpg.key
new file mode 100644
index 0000000..aa6b105
--- /dev/null
+++ b/.gitlab/ci/docker/cuda11.6/llvm-snapshot.gpg.key
@@ -0,0 +1,52 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.12 (GNU/Linux)
+
+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
+bXb5c6gCHESH5PXwPU4jQEE7Ib9J6sbk7ZT2Mw==
+=j+4q
+-----END PGP PUBLIC KEY BLOCK-----
diff --git a/.gitlab/ci/docker/cuda11.6/llvm.list b/.gitlab/ci/docker/cuda11.6/llvm.list
new file mode 100644
index 0000000..27d0824
--- /dev/null
+++ b/.gitlab/ci/docker/cuda11.6/llvm.list
@@ -0,0 +1,2 @@
+deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main
+deb-src http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main
diff --git a/.gitlab/ci/docker/debian10-aarch64/install_deps.sh b/.gitlab/ci/docker/debian10-aarch64/install_deps.sh
index d5c5e22..6e9aa0f 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
@@ -75,6 +76,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..f858037 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 \
@@ -75,6 +80,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 +92,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/fedora34/Dockerfile b/.gitlab/ci/docker/fedora35/Dockerfile
index af2322d..d1614b4 100644
--- a/.gitlab/ci/docker/fedora34/Dockerfile
+++ b/.gitlab/ci/docker/fedora35/Dockerfile
@@ -1,10 +1,10 @@
-FROM fedora:34 as rvm-build
+FROM fedora:35 as rvm-build
MAINTAINER Ben Boeckel <ben.boeckel@kitware.com>
COPY install_rvm.sh /root/install_rvm.sh
RUN sh /root/install_rvm.sh
-FROM fedora:34
+FROM fedora:35
MAINTAINER Ben Boeckel <ben.boeckel@kitware.com>
COPY install_deps.sh /root/install_deps.sh
diff --git a/.gitlab/ci/docker/fedora34/install_deps.sh b/.gitlab/ci/docker/fedora35/install_deps.sh
index bef3a97..3cc5ed5 100755
--- a/.gitlab/ci/docker/fedora34/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,6 +69,7 @@ dnf install --setopt=install_weak_deps=False -y \
gsl-devel \
gtest-devel \
gtk2-devel \
+ java-11-openjdk-devel \
jsoncpp-devel \
lapack-devel \
libarchive-devel \
@@ -75,7 +77,7 @@ dnf install --setopt=install_weak_deps=False -y \
libinput-devel systemd-devel \
libjpeg-turbo-devel \
libpng-devel \
- libpq-devel postgresql-server-devel \
+ postgresql-server-devel \
libtiff-devel \
libuv-devel \
libxml2-devel \
@@ -106,3 +108,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/docker/fedora34/install_ispc.sh b/.gitlab/ci/docker/fedora35/install_ispc.sh
index fdc14b5..fdc14b5 100755
--- a/.gitlab/ci/docker/fedora34/install_ispc.sh
+++ b/.gitlab/ci/docker/fedora35/install_ispc.sh
diff --git a/.gitlab/ci/docker/fedora34/install_rvm.sh b/.gitlab/ci/docker/fedora35/install_rvm.sh
index fca5104..fca5104 100755
--- a/.gitlab/ci/docker/fedora34/install_rvm.sh
+++ b/.gitlab/ci/docker/fedora35/install_rvm.sh
diff --git a/.gitlab/ci/env_cuda11.6_clang.sh b/.gitlab/ci/env_cuda11.6_clang.sh
new file mode 100644
index 0000000..f4be338
--- /dev/null
+++ b/.gitlab/ci/env_cuda11.6_clang.sh
@@ -0,0 +1,3 @@
+export CC=/usr/bin/clang-13
+export CXX=/usr/bin/clang++-13
+export CUDACXX=/usr/bin/clang++-13
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_fedora34_asan.sh b/.gitlab/ci/env_fedora35_asan.sh
index e976486..e976486 100644
--- a/.gitlab/ci/env_fedora34_asan.sh
+++ b/.gitlab/ci/env_fedora35_asan.sh
diff --git a/.gitlab/ci/env_fedora34_clang_analyzer.sh b/.gitlab/ci/env_fedora35_clang_analyzer.sh
index d732c0b..d732c0b 100644
--- a/.gitlab/ci/env_fedora34_clang_analyzer.sh
+++ b/.gitlab/ci/env_fedora35_clang_analyzer.sh
diff --git a/.gitlab/ci/env_fedora34_makefiles.cmake b/.gitlab/ci/env_fedora35_makefiles.cmake
index aa84e23..aa84e23 100644
--- a/.gitlab/ci/env_fedora34_makefiles.cmake
+++ b/.gitlab/ci/env_fedora35_makefiles.cmake
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/ci/jom.ps1 b/.gitlab/ci/jom.ps1
new file mode 100755
index 0000000..6c28005
--- /dev/null
+++ b/.gitlab/ci/jom.ps1
@@ -0,0 +1,15 @@
+$erroractionpreference = "stop"
+
+$sha256sum = "128FDD846FE24F8594EED37D1D8929A0EA78DF563537C0C1B1861A635013FFF8"
+$tarball = "unstable-jom-2018-12-12.zip"
+
+$outdir = $pwd.Path
+$outdir = "$outdir\.gitlab"
+$ProgressPreference = 'SilentlyContinue'
+Invoke-WebRequest -Uri "https://cmake.org/files/dependencies/$tarball" -OutFile "$outdir\$tarball"
+$hash = Get-FileHash "$outdir\$tarball" -Algorithm SHA256
+if ($hash.Hash -ne $sha256sum) {
+ exit 1
+}
+
+Expand-Archive -Path "$outdir\$tarball" -DestinationPath "$outdir\jom"
diff --git a/.gitlab/ci/msvc.ps1 b/.gitlab/ci/msvc.ps1
new file mode 100755
index 0000000..e8388a4
--- /dev/null
+++ b/.gitlab/ci/msvc.ps1
@@ -0,0 +1,31 @@
+$erroractionpreference = "stop"
+
+if ("$env:CMAKE_CONFIGURATION".Contains("msvc_v71")) {
+ # MSVC v71 Toolset from Visual Studio 7 .NET 2003
+ $filename = "msvc-v71-1"
+ $sha256sum = "01637CDC670EA5D631E169E286ACDD1913A124E3C5AF4C3DFB37657ADE8BBA9F"
+ $vcvars = "Vc7\bin\vcvars32.bat"
+} else {
+ throw ('unknown CMAKE_CONFIGURATION: ' + "$env:CMAKE_CONFIGURATION")
+}
+$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\msvc"
+
+$bat = Get-Content -path "$outdir\msvc\$vcvars.in" -Raw
+$bat = $bat -replace "@VS_ROOT@","$outdir\msvc"
+$bat | Set-Content -path "$outdir\msvc\$vcvars"
+
+Set-Item -Force -Path "env:VCVARSALL" -Value "$outdir\msvc\$vcvars"
diff --git a/.gitlab/ci/ninja-nightly.ps1 b/.gitlab/ci/ninja-nightly.ps1
new file mode 100755
index 0000000..071b077
--- /dev/null
+++ b/.gitlab/ci/ninja-nightly.ps1
@@ -0,0 +1,9 @@
+$erroractionpreference = "stop"
+
+Invoke-Expression -Command .gitlab/ci/vcvarsall.ps1
+Set-Location -Path ".gitlab"
+git clone https://github.com/ninja-build/ninja.git ninja-src
+cmake -S ninja-src -B ninja-src/build -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
+cmake --build ninja-src/build --target ninja
+Move-Item -Path "ninja-src\build\ninja.exe" -Destination . -Force
+Remove-Item "ninja-src" -Recurse -Force
diff --git a/.gitlab/ci/ninja.ps1 b/.gitlab/ci/ninja.ps1
index 4c5333a..47bb056 100755
--- a/.gitlab/ci/ninja.ps1
+++ b/.gitlab/ci/ninja.ps1
@@ -1,5 +1,10 @@
$erroractionpreference = "stop"
+if ("$env:CMAKE_CI_JOB_NIGHTLY_NINJA" -eq "true" -And "$env:CMAKE_CI_NIGHTLY" -eq "true") {
+ & .gitlab/ci/ninja-nightly.ps1
+ exit $LASTEXITCODE
+}
+
$version = "1.10.2"
$sha256sum = "BBDE850D247D2737C5764C927D1071CBB1F1957DCABDA4A130FA8547C12C695F"
$filename = "ninja-win"
diff --git a/.gitlab/ci/openwatcom.ps1 b/.gitlab/ci/openwatcom.ps1
new file mode 100755
index 0000000..4f1012c
--- /dev/null
+++ b/.gitlab/ci/openwatcom.ps1
@@ -0,0 +1,25 @@
+$erroractionpreference = "stop"
+
+if ("$env:CMAKE_CONFIGURATION".Contains("openwatcom1.9")) {
+ # Open Watcom 1.9
+ # https://web.archive.org/web/20210312132437/http://www.openwatcom.org/download.php
+ $filename = "open-watcom-1.9-1"
+ $sha256sum = "FFE6F5BBA200912697C6EC26C4D3B2623A0358FBE7CBB23BD264CBF7D54E4988"
+} else {
+ throw ('unknown CMAKE_CONFIGURATION: ' + "$env:CMAKE_CONFIGURATION")
+}
+$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\watcom"
diff --git a/.gitlab/ci/vcvarsall.ps1 b/.gitlab/ci/vcvarsall.ps1
index 57d3386..f91b100 100755
--- a/.gitlab/ci/vcvarsall.ps1
+++ b/.gitlab/ci/vcvarsall.ps1
@@ -1,6 +1,6 @@
$erroractionpreference = "stop"
-cmd /c "`"$env:VCVARSALL`" $VCVARSPLATFORM -vcvars_ver=$VCVARSVERSION & set" |
+cmd /c "`"$env:VCVARSALL`" $env:VCVARSPLATFORM -vcvars_ver=$env:VCVARSVERSION & set" |
foreach {
if ($_ -match "=") {
$v = $_.split("=")
diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml
index 90c10a2..4f0fda4 100644
--- a/.gitlab/os-linux.yml
+++ b/.gitlab/os-linux.yml
@@ -5,7 +5,7 @@
### Release
.linux_prep_source:
- image: "fedora:34"
+ image: "fedora:35"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -45,7 +45,7 @@
### Debian
.debian10:
- image: "kitware/cmake:ci-debian10-x86_64-2021-11-18"
+ image: "kitware/cmake:ci-debian10-x86_64-2022-03-16"
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-03-16"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -68,8 +68,8 @@
### Fedora
-.fedora34:
- image: "kitware/cmake:ci-fedora34-x86_64-2021-10-05"
+.fedora35:
+ image: "kitware/cmake:ci-fedora35-x86_64-2022-03-16"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes"
@@ -77,37 +77,37 @@
#### Lint builds
-.fedora34_tidy:
- extends: .fedora34
+.fedora35_tidy:
+ extends: .fedora35
variables:
- CMAKE_CONFIGURATION: fedora34_tidy
+ CMAKE_CONFIGURATION: fedora35_tidy
CTEST_NO_WARNINGS_ALLOWED: 1
- CMake_SKIP_INSTALL: 1
+ CMAKE_CI_NO_INSTALL: 1
-.fedora34_clang_analyzer:
- extends: .fedora34
+.fedora35_clang_analyzer:
+ extends: .fedora35
variables:
- CMAKE_CONFIGURATION: fedora34_clang_analyzer
+ CMAKE_CONFIGURATION: fedora35_clang_analyzer
CMAKE_CI_BUILD_TYPE: Debug
CTEST_NO_WARNINGS_ALLOWED: 1
- CMake_SKIP_INSTALL: 1
+ CMAKE_CI_NO_INSTALL: 1
-.fedora34_sphinx:
- extends: .fedora34
+.fedora35_sphinx:
+ extends: .fedora35
variables:
- CMAKE_CONFIGURATION: fedora34_sphinx
+ CMAKE_CONFIGURATION: fedora35_sphinx
CTEST_NO_WARNINGS_ALLOWED: 1
CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"
- CMake_SKIP_INSTALL: 1
+ CMAKE_CI_NO_INSTALL: 1
-.fedora34_sphinx_package:
- extends: .fedora34
+.fedora35_sphinx_package:
+ extends: .fedora35
variables:
- CMAKE_CONFIGURATION: fedora34_sphinx_package
+ CMAKE_CONFIGURATION: fedora35_sphinx_package
CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"
#### Build and test
@@ -126,27 +126,38 @@
CMAKE_CONFIGURATION: debian10_aarch64_ninja
CTEST_NO_WARNINGS_ALLOWED: 1
-.fedora34_ninja:
- extends: .fedora34
+.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
variables:
- CMAKE_CONFIGURATION: fedora34_ninja
+ CMAKE_CONFIGURATION: fedora35_ninja
CMAKE_CI_BUILD_TYPE: Release
CTEST_NO_WARNINGS_ALLOWED: 1
-.fedora34_ninja_multi:
- extends: .fedora34
+.fedora35_ninja_multi:
+ extends: .fedora35
variables:
- CMAKE_CONFIGURATION: fedora34_ninja_multi
+ CMAKE_CONFIGURATION: fedora35_ninja_multi
CTEST_NO_WARNINGS_ALLOWED: 1
CMAKE_GENERATOR: "Ninja Multi-Config"
-.fedora34_makefiles:
- extends: .fedora34
+.fedora35_makefiles:
+ extends: .fedora35
variables:
- CMAKE_CONFIGURATION: fedora34_makefiles
+ CMAKE_CONFIGURATION: fedora35_makefiles
CTEST_NO_WARNINGS_ALLOWED: 1
CMAKE_GENERATOR: "Unix Makefiles"
@@ -178,13 +189,13 @@
CTEST_MEMORYCHECK_TYPE: AddressSanitizer
CTEST_MEMORYCHECK_SANITIZER_OPTIONS: ""
-.fedora34_asan:
+.fedora35_asan:
extends:
- - .fedora34
+ - .fedora35
- .fedora_asan_addon
variables:
- CMAKE_CONFIGURATION: fedora34_asan
+ CMAKE_CONFIGURATION: fedora35_asan
### Intel Compiler
@@ -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
@@ -246,6 +259,29 @@
CMAKE_CONFIGURATION: cuda10.2_clang
CTEST_NO_WARNINGS_ALLOWED: 1
+.cuda11.6:
+ image: "kitware/cmake:ci-cuda11.6-x86_64-2022-02-28"
+
+ variables:
+ 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
+
+ variables:
+ CMAKE_CONFIGURATION: cuda11.6_nvidia
+ CTEST_NO_WARNINGS_ALLOWED: 1
+
+.cuda11.6_clang:
+ extends: .cuda11.6
+
+ variables:
+ CMAKE_CONFIGURATION: cuda11.6_clang
+ CTEST_NO_WARNINGS_ALLOWED: 1
+
### HIP builds
.hip4.2:
@@ -353,7 +389,7 @@
.cmake_codespell_linux:
stage: build
- extends: .fedora34
+ extends: .fedora35
script:
- codespell
interruptible: true
@@ -429,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
@@ -440,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
@@ -453,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
@@ -483,7 +532,7 @@
.cmake_org_help:
stage: build
extends:
- - .fedora34
+ - .fedora35
- .linux_builder_tags
- .cmake_org_help_artifacts
script:
diff --git a/.gitlab/os-macos.yml b/.gitlab/os-macos.yml
index b0844cb..e89dba8 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 806e7ca..3532765 100644
--- a/.gitlab/os-windows.yml
+++ b/.gitlab/os-windows.yml
@@ -21,7 +21,7 @@
# could run at the same time, so we drop it.
GIT_CLONE_PATH: "$CI_BUILDS_DIR\\cmake ci"
-.windows_ninja:
+.windows_build_ninja:
extends: .windows_build
variables:
@@ -31,15 +31,20 @@
CMAKE_CI_BUILD_TYPE: Release
CTEST_NO_WARNINGS_ALLOWED: 1
-.windows_vs2022_x64_ninja:
- extends: .windows_ninja
-
+.windows_vcvarsall_vs2022_x64:
variables:
- CMAKE_CONFIGURATION: windows_vs2022_x64_ninja
VCVARSALL: "${VS170COMNTOOLS}\\..\\..\\VC\\Auxiliary\\Build\\vcvarsall.bat"
VCVARSPLATFORM: "x64"
VCVARSVERSION: "14.31.31103"
+.windows_vs2022_x64_ninja:
+ extends:
+ - .windows_build_ninja
+ - .windows_vcvarsall_vs2022_x64
+
+ variables:
+ CMAKE_CONFIGURATION: windows_vs2022_x64_ninja
+
### External testing
.windows_vs2022_x64:
@@ -52,6 +57,114 @@
CMAKE_GENERATOR_TOOLSET: "v143,version=14.31.31103"
CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
+.windows_vs2019_x64:
+ extends: .windows
+
+ variables:
+ CMAKE_CONFIGURATION: windows_vs2019_x64
+ CMAKE_GENERATOR: "Visual Studio 16 2019"
+ CMAKE_GENERATOR_PLATFORM: "x64"
+ CMAKE_GENERATOR_TOOLSET: "v142,version=14.29.30133"
+ CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
+
+.windows_borland:
+ extends: .windows
+
+ variables:
+ CMAKE_GENERATOR: "Borland Makefiles"
+ CMAKE_CI_BUILD_TYPE: Release
+ CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
+
+.windows_borland5.5:
+ extends: .windows_borland
+
+ variables:
+ CMAKE_CONFIGURATION: windows_borland5.5
+
+.windows_borland5.8:
+ extends: .windows_borland
+
+ 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
+
+ variables:
+ CMAKE_GENERATOR: "NMake Makefiles"
+ CMAKE_CI_BUILD_TYPE: Release
+ CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
+
+.windows_jom:
+ extends: .windows
+
+ variables:
+ CMAKE_GENERATOR: "NMake Makefiles JOM"
+ CMAKE_CI_BUILD_TYPE: Release
+ CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
+
+.windows_vs2022_x64_nmake:
+ extends:
+ - .windows_nmake
+ - .windows_vcvarsall_vs2022_x64
+
+ variables:
+ CMAKE_CONFIGURATION: windows_vs2022_x64_nmake
+
+.windows_vs2022_x64_jom:
+ extends:
+ - .windows_jom
+ - .windows_vcvarsall_vs2022_x64
+
+ 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
+
+ variables:
+ CMAKE_CONFIGURATION: windows_msvc_v71_nmake
+
+.windows_openwatcom:
+ extends: .windows
+
+ variables:
+ # Watcom does not support spaces in the path.
+ GIT_CLONE_PATH: "$CI_BUILDS_DIR\\cmake-ci-ext\\$CI_CONCURRENT_ID"
+ CMAKE_GENERATOR: "Watcom WMake"
+ CMAKE_CI_BUILD_TYPE: Release
+ CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true"
+
+.windows_openwatcom1.9:
+ extends: .windows_openwatcom
+
+ variables:
+ CMAKE_CONFIGURATION: windows_openwatcom1.9
+
## Tags
.windows_tags_nonconcurrent_vs2022:
@@ -72,16 +185,33 @@
- msvc-19.31
- concurrent
+.windows_tags_concurrent_vs2019:
+ tags:
+ - cmake # Since this is a bare runner, pin to a project.
+ - windows
+ - shell
+ - vs2019
+ - msvc-19.29-16.11
+ - concurrent
+
+.windows_tags_concurrent:
+ tags:
+ - cmake # Since this is a bare runner, pin to a project.
+ - windows
+ - shell
+ - concurrent
+
## Windows-specific scripts
.before_script_windows: &before_script_windows
- - Invoke-Expression -Command .gitlab/ci/wix.ps1
- - Invoke-Expression -Command .gitlab/ci/cmake.ps1
- - Invoke-Expression -Command .gitlab/ci/ninja.ps1
- $pwdpath = $pwd.Path
+ - powershell -File ".gitlab/ci/wix.ps1"
- Set-Item -Force -Path "env:WIX" -Value "$pwdpath\.gitlab\wix"
+ - powershell -File ".gitlab/ci/cmake.ps1"
+ - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\cmake\bin;$env:PATH"
+ - powershell -File ".gitlab/ci/ninja.ps1"
+ - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab;$env:PATH"
- (& "$env:WIX\bin\light.exe" -help) | Select -First 1
- - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab;$pwdpath\.gitlab\cmake\bin;$env:PATH"
- cmake --version
- ninja --version
- cmake -P .gitlab/ci/download_qt.cmake
@@ -120,6 +250,77 @@
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
+
+.cmake_test_windows_nmake:
+ stage: test-ext
+
+ script:
+ - Invoke-Expression -Command .gitlab/ci/vcvarsall.ps1
+ - build/install/bin/ctest --output-on-failure -V -S .gitlab/ci/ctest_standalone.cmake
+
+ interruptible: true
+
+.cmake_test_windows_jom:
+ stage: test-ext
+
+ script:
+ - Invoke-Expression -Command .gitlab/ci/jom.ps1
+ - $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_standalone.cmake
+
+ interruptible: true
+
+.cmake_test_windows_borland:
+ stage: test-ext
+
+ script:
+ - 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_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
+
+.cmake_test_windows_msvc:
+ stage: test-ext
+
+ 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_standalone.cmake
+
+ interruptible: true
+
+.cmake_test_windows_openwatcom:
+ stage: test-ext
+
+ script:
+ - Invoke-Expression -Command .gitlab/ci/openwatcom.ps1
+ - $pwdpath = $pwd.Path
+ - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\watcom\binnt;$pwdpath\.gitlab\watcom\binw;$env:PATH"
+ - Set-Item -Force -Path "env:INCLUDE" -Value "$pwdpath\.gitlab\watcom\h;$pwdpath\.gitlab\watcom\h\nt"
+ - 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_standalone.cmake
interruptible: true
diff --git a/.gitlab/rules.yml b/.gitlab/rules.yml
index 5642c15..fd7948e 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'
diff --git a/.gitlab/upload.yml b/.gitlab/upload.yml
index a4cbbde..d831c3e 100644
--- a/.gitlab/upload.yml
+++ b/.gitlab/upload.yml
@@ -1,7 +1,7 @@
# Steps for uploading artifacts
.rsync_upload_package:
- image: "fedora:34"
+ image: "fedora:35"
stage: upload
tags:
- cmake
@@ -21,7 +21,7 @@
.rsync_upload_help:
stage: upload
- image: "fedora:34"
+ image: "fedora:35"
tags:
- cmake
- docker