summaryrefslogtreecommitdiffstats
path: root/.gitlab
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab')
-rw-r--r--.gitlab/artifacts.yml20
-rwxr-xr-x.gitlab/ci/cmake.ps16
-rwxr-xr-x.gitlab/ci/cmake.sh12
-rw-r--r--.gitlab/ci/configure_common.cmake4
-rw-r--r--.gitlab/ci/configure_cuda10.2_clang.cmake3
-rw-r--r--.gitlab/ci/configure_debian10_aarch64_ninja.cmake8
-rw-r--r--.gitlab/ci/configure_debian10_makefiles_clang.cmake1
-rw-r--r--.gitlab/ci/configure_debian10_ninja.cmake8
-rw-r--r--.gitlab/ci/configure_debian10_ninja_clang.cmake1
-rw-r--r--.gitlab/ci/configure_fedora33_tidy.cmake3
-rw-r--r--.gitlab/ci/configure_fedora34_asan.cmake4
-rw-r--r--.gitlab/ci/configure_fedora34_clang_analyzer.cmake1
-rw-r--r--.gitlab/ci/configure_fedora34_common.cmake (renamed from .gitlab/ci/configure_fedora33_common.cmake)1
-rw-r--r--.gitlab/ci/configure_fedora34_makefiles.cmake (renamed from .gitlab/ci/configure_fedora33_makefiles.cmake)8
-rw-r--r--.gitlab/ci/configure_fedora34_ninja.cmake (renamed from .gitlab/ci/configure_fedora33_ninja.cmake)2
-rw-r--r--.gitlab/ci/configure_fedora34_ninja_multi.cmake (renamed from .gitlab/ci/configure_fedora33_ninja_multi.cmake)0
-rw-r--r--.gitlab/ci/configure_fedora34_sphinx.cmake (renamed from .gitlab/ci/configure_fedora33_sphinx.cmake)0
-rw-r--r--.gitlab/ci/configure_fedora34_sphinx_package.cmake (renamed from .gitlab/ci/configure_fedora33_sphinx_package.cmake)0
-rw-r--r--.gitlab/ci/configure_fedora34_tidy.cmake3
-rw-r--r--.gitlab/ci/configure_intelclassic_makefiles.cmake1
-rw-r--r--.gitlab/ci/configure_intelcompiler_common.cmake10
-rw-r--r--.gitlab/ci/configure_inteloneapi_makefiles.cmake1
-rw-r--r--.gitlab/ci/configure_windows_vs2019_x64_ninja.cmake3
-rw-r--r--.gitlab/ci/ctest_exclusions.cmake8
-rw-r--r--.gitlab/ci/ctest_memcheck.cmake45
-rw-r--r--.gitlab/ci/ctest_memcheck_fedora34_asan.lsan.supp1
-rw-r--r--.gitlab/ci/ctest_test.cmake1
-rw-r--r--.gitlab/ci/ctest_test_external.cmake1
-rw-r--r--.gitlab/ci/docker/cuda10.2/Dockerfile4
-rwxr-xr-x.gitlab/ci/docker/cuda10.2/install_deps.sh1
-rw-r--r--.gitlab/ci/docker/cuda10.2/llvm-snapshot.gpg.key52
-rw-r--r--.gitlab/ci/docker/cuda10.2/llvm.list2
-rwxr-xr-x.gitlab/ci/docker/debian10-aarch64/install_deps.sh4
-rwxr-xr-x.gitlab/ci/docker/debian10/install_deps.sh4
-rwxr-xr-x.gitlab/ci/docker/debian10/install_rvm.sh2
-rw-r--r--.gitlab/ci/docker/fedora34/Dockerfile (renamed from .gitlab/ci/docker/fedora33/Dockerfile)4
-rwxr-xr-x.gitlab/ci/docker/fedora34/install_deps.sh (renamed from .gitlab/ci/docker/fedora33/install_deps.sh)27
-rwxr-xr-x.gitlab/ci/docker/fedora34/install_ispc.sh (renamed from .gitlab/ci/docker/fedora33/install_ispc.sh)0
-rwxr-xr-x.gitlab/ci/docker/fedora34/install_rvm.sh (renamed from .gitlab/ci/docker/fedora33/install_rvm.sh)2
-rw-r--r--.gitlab/ci/env.sh14
-rw-r--r--.gitlab/ci/env_cuda10.2_clang.sh3
-rw-r--r--.gitlab/ci/env_debian10_makefiles_clang.sh2
-rw-r--r--.gitlab/ci/env_debian10_ninja_clang.sh2
-rw-r--r--.gitlab/ci/env_fedora34_asan.sh2
-rw-r--r--.gitlab/ci/env_fedora34_clang_analyzer.sh2
-rw-r--r--.gitlab/ci/env_fedora34_makefiles.cmake (renamed from .gitlab/ci/env_fedora33_makefiles.cmake)2
-rw-r--r--.gitlab/ci/env_intelclassic_common.sh9
-rw-r--r--.gitlab/ci/env_intelclassic_makefiles.sh1
-rw-r--r--.gitlab/ci/env_intelcompiler_license.sh8
-rw-r--r--.gitlab/ci/env_inteloneapi_common.sh7
-rw-r--r--.gitlab/ci/env_inteloneapi_makefiles.sh1
-rw-r--r--.gitlab/ci/gitlab_ci.cmake10
-rw-r--r--.gitlab/os-linux.yml186
-rw-r--r--.gitlab/os-windows.yml2
-rw-r--r--.gitlab/rules.yml22
-rw-r--r--.gitlab/upload.yml23
56 files changed, 486 insertions, 68 deletions
diff --git a/.gitlab/artifacts.yml b/.gitlab/artifacts.yml
index bf8e8b6..45e4c5b 100644
--- a/.gitlab/artifacts.yml
+++ b/.gitlab/artifacts.yml
@@ -82,11 +82,22 @@
- build/cmake-*.tar.gz
- build/cmake-*.zip
+.cmake_junit_artifacts:
+ artifacts:
+ expire_in: 1d
+ when: always
+ reports:
+ junit:
+ - build/junit.xml
+
.cmake_test_artifacts:
artifacts:
expire_in: 1d
# External testing can be useful even if test jobs fail.
when: always
+ reports:
+ junit:
+ - build/junit.xml
paths:
# Take the install tree.
- build/install/
@@ -97,3 +108,12 @@
paths:
# Take the install tree.
- build/install-doc/
+
+.cmake_org_help_artifacts:
+ artifacts:
+ expire_in: 1d
+ paths:
+ - build/html
+ exclude:
+ - build/html/.buildinfo
+ - build/html/objects.inv
diff --git a/.gitlab/ci/cmake.ps1 b/.gitlab/ci/cmake.ps1
index 3d6fb81..5d01e3f 100755
--- a/.gitlab/ci/cmake.ps1
+++ b/.gitlab/ci/cmake.ps1
@@ -1,8 +1,8 @@
$erroractionpreference = "stop"
-$version = "3.19.7"
-$sha256sum = "E6788D6E23B3026C37FCFA7658075D6B5F9113F26FAE17FE372AD4A7EE62D5FD"
-$filename = "cmake-$version-win64-x64"
+$version = "3.21.0"
+$sha256sum = "C7B88C907A753F4EC86E43DDC89F91F70BF1B011859142F7F29E6D51EA4ABB3C"
+$filename = "cmake-$version-windows-x86_64"
$tarball = "$filename.zip"
$outdir = $pwd.Path
diff --git a/.gitlab/ci/cmake.sh b/.gitlab/ci/cmake.sh
index e02eb8a..c37f6dc 100755
--- a/.gitlab/ci/cmake.sh
+++ b/.gitlab/ci/cmake.sh
@@ -2,22 +2,22 @@
set -e
-readonly version="3.19.3"
+readonly version="3.21.0"
case "$(uname -s)-$(uname -m)" in
Linux-x86_64)
shatool="sha256sum"
- sha256sum="c18b65697e9679e5c88dccede08c323cd3d3730648e59048047bba82097e0ffc"
- platform="Linux-x86_64"
+ sha256sum="d54ef6909f519740bc85cec07ff54574cd1e061f9f17357d9ace69f61c6291ce"
+ platform="linux-x86_64"
;;
Linux-aarch64)
shatool="sha256sum"
- sha256sum="66e507c97ffb586d7ca6567890808b792c8eb004b645706df6fbf27826a395a2"
- platform="Linux-aarch64"
+ sha256sum="b1e46825bf370f45f8f47c3a497b1122759ee41fbd60187e525f517a4b0934eb"
+ platform="linux-aarch64"
;;
Darwin-*)
shatool="shasum -a 256"
- sha256sum="a6b79ad05f89241a05797510e650354d74ff72cc988981cdd1eb2b3b2bda66ac"
+ sha256sum="c1c6f19dfc9c658a48b5aed22806595b2337bb3aedb71ab826552f74f568719f"
platform="macos-universal"
;;
*)
diff --git a/.gitlab/ci/configure_common.cmake b/.gitlab/ci/configure_common.cmake
index 436e582..a711f3b 100644
--- a/.gitlab/ci/configure_common.cmake
+++ b/.gitlab/ci/configure_common.cmake
@@ -6,8 +6,8 @@ set(CMAKE_SKIP_INSTALL_ALL_DEPENDENCY "ON" CACHE BOOL "")
set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "")
set(CMake_TEST_INSTALL "OFF" CACHE BOOL "")
-if (NOT "$ENV{CMAKE_BUILD_TYPE}" STREQUAL "")
- set(CMAKE_BUILD_TYPE "$ENV{CMAKE_BUILD_TYPE}" CACHE STRING "")
+if (NOT "$ENV{CMAKE_CI_BUILD_TYPE}" STREQUAL "")
+ set(CMAKE_BUILD_TYPE "$ENV{CMAKE_CI_BUILD_TYPE}" CACHE STRING "")
endif ()
if (NOT configure_no_sccache)
diff --git a/.gitlab/ci/configure_cuda10.2_clang.cmake b/.gitlab/ci/configure_cuda10.2_clang.cmake
new file mode 100644
index 0000000..e13ca88
--- /dev/null
+++ b/.gitlab/ci/configure_cuda10.2_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_debian10_aarch64_ninja.cmake b/.gitlab/ci/configure_debian10_aarch64_ninja.cmake
index 023cc9e..4d8dde6 100644
--- a/.gitlab/ci/configure_debian10_aarch64_ninja.cmake
+++ b/.gitlab/ci/configure_debian10_aarch64_ninja.cmake
@@ -1,10 +1,12 @@
set(CMake_TEST_FindALSA "ON" CACHE BOOL "")
-set(CMake_TEST_FindBLAS "ON" CACHE BOOL "")
+set(CMake_TEST_FindBLAS "All" CACHE STRING "")
+set(CMake_TEST_FindBLAS_STATIC "Generic" CACHE STRING "")
set(CMake_TEST_FindBoost "ON" CACHE BOOL "")
set(CMake_TEST_FindBoost_Python "ON" CACHE BOOL "")
set(CMake_TEST_FindBZip2 "ON" CACHE BOOL "")
set(CMake_TEST_FindCups "ON" CACHE BOOL "")
set(CMake_TEST_FindCURL "ON" CACHE BOOL "")
+set(CMake_TEST_FindDevIL "ON" CACHE BOOL "")
set(CMake_TEST_FindDoxygen_Dot "ON" CACHE BOOL "")
set(CMake_TEST_FindDoxygen "ON" CACHE BOOL "")
set(CMake_TEST_FindEXPAT "ON" CACHE BOOL "")
@@ -22,7 +24,8 @@ set(CMake_TEST_FindIconv "ON" CACHE BOOL "")
set(CMake_TEST_FindIntl "ON" CACHE BOOL "")
set(CMake_TEST_FindJPEG "ON" CACHE BOOL "")
set(CMake_TEST_FindJsonCpp "ON" CACHE BOOL "")
-set(CMake_TEST_FindLAPACK "ON" CACHE BOOL "")
+set(CMake_TEST_FindLAPACK "All" CACHE STRING "")
+set(CMake_TEST_FindLAPACK_STATIC "Generic" CACHE STRING "")
set(CMake_TEST_FindLibArchive "ON" CACHE BOOL "")
set(CMake_TEST_FindLibinput "ON" CACHE BOOL "")
set(CMake_TEST_FindLibLZMA "ON" CACHE BOOL "")
@@ -45,6 +48,7 @@ set(CMake_TEST_FindPatch "ON" CACHE BOOL "")
set(CMake_TEST_FindPNG "ON" CACHE BOOL "")
set(CMake_TEST_FindPostgreSQL "ON" CACHE BOOL "")
set(CMake_TEST_FindProtobuf "ON" CACHE BOOL "")
+set(CMake_TEST_FindProtobuf_gRPC "ON" CACHE BOOL "")
set(CMake_TEST_FindPython "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_NumPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_PyPy "ON" CACHE BOOL "")
diff --git a/.gitlab/ci/configure_debian10_makefiles_clang.cmake b/.gitlab/ci/configure_debian10_makefiles_clang.cmake
new file mode 100644
index 0000000..20863a2
--- /dev/null
+++ b/.gitlab/ci/configure_debian10_makefiles_clang.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
diff --git a/.gitlab/ci/configure_debian10_ninja.cmake b/.gitlab/ci/configure_debian10_ninja.cmake
index 74d9f12..732624a 100644
--- a/.gitlab/ci/configure_debian10_ninja.cmake
+++ b/.gitlab/ci/configure_debian10_ninja.cmake
@@ -1,10 +1,12 @@
set(CMake_TEST_FindALSA "ON" CACHE BOOL "")
-set(CMake_TEST_FindBLAS "ON" CACHE BOOL "")
+set(CMake_TEST_FindBLAS "All" CACHE STRING "")
+set(CMake_TEST_FindBLAS_STATIC "Generic" CACHE STRING "")
set(CMake_TEST_FindBoost "ON" CACHE BOOL "")
set(CMake_TEST_FindBoost_Python "ON" CACHE BOOL "")
set(CMake_TEST_FindBZip2 "ON" CACHE BOOL "")
set(CMake_TEST_FindCups "ON" CACHE BOOL "")
set(CMake_TEST_FindCURL "ON" CACHE BOOL "")
+set(CMake_TEST_FindDevIL "ON" CACHE BOOL "")
set(CMake_TEST_FindDoxygen_Dot "ON" CACHE BOOL "")
set(CMake_TEST_FindDoxygen "ON" CACHE BOOL "")
set(CMake_TEST_FindEXPAT "ON" CACHE BOOL "")
@@ -22,7 +24,8 @@ set(CMake_TEST_FindIconv "ON" CACHE BOOL "")
set(CMake_TEST_FindIntl "ON" CACHE BOOL "")
set(CMake_TEST_FindJPEG "ON" CACHE BOOL "")
set(CMake_TEST_FindJsonCpp "ON" CACHE BOOL "")
-set(CMake_TEST_FindLAPACK "ON" CACHE BOOL "")
+set(CMake_TEST_FindLAPACK "All" CACHE STRING "")
+set(CMake_TEST_FindLAPACK_STATIC "Generic" CACHE STRING "")
set(CMake_TEST_FindLibArchive "ON" CACHE BOOL "")
set(CMake_TEST_FindLibinput "ON" CACHE BOOL "")
set(CMake_TEST_FindLibLZMA "ON" CACHE BOOL "")
@@ -45,6 +48,7 @@ set(CMake_TEST_FindPatch "ON" CACHE BOOL "")
set(CMake_TEST_FindPNG "ON" CACHE BOOL "")
set(CMake_TEST_FindPostgreSQL "ON" CACHE BOOL "")
set(CMake_TEST_FindProtobuf "ON" CACHE BOOL "")
+set(CMake_TEST_FindProtobuf_gRPC "ON" CACHE BOOL "")
set(CMake_TEST_FindPython "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_IronPython "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_NumPy "ON" CACHE BOOL "")
diff --git a/.gitlab/ci/configure_debian10_ninja_clang.cmake b/.gitlab/ci/configure_debian10_ninja_clang.cmake
new file mode 100644
index 0000000..20863a2
--- /dev/null
+++ b/.gitlab/ci/configure_debian10_ninja_clang.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
diff --git a/.gitlab/ci/configure_fedora33_tidy.cmake b/.gitlab/ci/configure_fedora33_tidy.cmake
deleted file mode 100644
index 9052fdc..0000000
--- a/.gitlab/ci/configure_fedora33_tidy.cmake
+++ /dev/null
@@ -1,3 +0,0 @@
-set(CMake_RUN_CLANG_TIDY ON CACHE BOOL "")
-
-include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora33_common.cmake")
diff --git a/.gitlab/ci/configure_fedora34_asan.cmake b/.gitlab/ci/configure_fedora34_asan.cmake
new file mode 100644
index 0000000..c22cdb7
--- /dev/null
+++ b/.gitlab/ci/configure_fedora34_asan.cmake
@@ -0,0 +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")
diff --git a/.gitlab/ci/configure_fedora34_clang_analyzer.cmake b/.gitlab/ci/configure_fedora34_clang_analyzer.cmake
new file mode 100644
index 0000000..e00f8a7
--- /dev/null
+++ b/.gitlab/ci/configure_fedora34_clang_analyzer.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora34_common.cmake")
diff --git a/.gitlab/ci/configure_fedora33_common.cmake b/.gitlab/ci/configure_fedora34_common.cmake
index dee78ab..4484e26 100644
--- a/.gitlab/ci/configure_fedora33_common.cmake
+++ b/.gitlab/ci/configure_fedora34_common.cmake
@@ -1,5 +1,6 @@
set(BUILD_CursesDialog ON CACHE BOOL "")
set(BUILD_QtDialog ON CACHE BOOL "")
+set(CMake_QT_MAJOR_VERSION "5" CACHE STRING "")
set(CMake_TEST_JQ "/usr/bin/jq" CACHE PATH "")
set(CMake_TEST_JSON_SCHEMA ON CACHE BOOL "")
diff --git a/.gitlab/ci/configure_fedora33_makefiles.cmake b/.gitlab/ci/configure_fedora34_makefiles.cmake
index db2d005..48786e4 100644
--- a/.gitlab/ci/configure_fedora33_makefiles.cmake
+++ b/.gitlab/ci/configure_fedora34_makefiles.cmake
@@ -1,10 +1,12 @@
set(CMake_TEST_FindALSA "ON" CACHE BOOL "")
-set(CMake_TEST_FindBLAS "ON" CACHE BOOL "")
+set(CMake_TEST_FindBLAS "All" CACHE STRING "")
+set(CMake_TEST_FindBLAS_STATIC "Generic" CACHE STRING "")
set(CMake_TEST_FindBoost "ON" CACHE BOOL "")
set(CMake_TEST_FindBoost_Python "ON" CACHE BOOL "")
set(CMake_TEST_FindBZip2 "ON" CACHE BOOL "")
set(CMake_TEST_FindCups "ON" CACHE BOOL "")
set(CMake_TEST_FindCURL "ON" CACHE BOOL "")
+set(CMake_TEST_FindDevIL "ON" CACHE BOOL "")
set(CMake_TEST_FindDoxygen_Dot "ON" CACHE BOOL "")
set(CMake_TEST_FindDoxygen "ON" CACHE BOOL "")
set(CMake_TEST_FindEXPAT "ON" CACHE BOOL "")
@@ -22,7 +24,8 @@ set(CMake_TEST_FindIconv "ON" CACHE BOOL "")
set(CMake_TEST_FindIntl "ON" CACHE BOOL "")
set(CMake_TEST_FindJPEG "ON" CACHE BOOL "")
set(CMake_TEST_FindJsonCpp "ON" CACHE BOOL "")
-set(CMake_TEST_FindLAPACK "ON" CACHE BOOL "")
+set(CMake_TEST_FindLAPACK "All" CACHE STRING "")
+set(CMake_TEST_FindLAPACK_STATIC "Generic" CACHE STRING "")
set(CMake_TEST_FindLibArchive "ON" CACHE BOOL "")
set(CMake_TEST_FindLibinput "ON" CACHE BOOL "")
set(CMake_TEST_FindLibLZMA "ON" CACHE BOOL "")
@@ -45,6 +48,7 @@ set(CMake_TEST_FindPatch "ON" CACHE BOOL "")
set(CMake_TEST_FindPNG "ON" CACHE BOOL "")
set(CMake_TEST_FindPostgreSQL "ON" CACHE BOOL "")
set(CMake_TEST_FindProtobuf "ON" CACHE BOOL "")
+set(CMake_TEST_FindProtobuf_gRPC "ON" CACHE BOOL "")
set(CMake_TEST_FindPython "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_NumPy "ON" CACHE BOOL "")
set(CMake_TEST_FindPython_PyPy "ON" CACHE BOOL "")
diff --git a/.gitlab/ci/configure_fedora33_ninja.cmake b/.gitlab/ci/configure_fedora34_ninja.cmake
index 883f425..37bc189 100644
--- a/.gitlab/ci/configure_fedora33_ninja.cmake
+++ b/.gitlab/ci/configure_fedora34_ninja.cmake
@@ -4,4 +4,4 @@ set(CMake_TEST_GUI "ON" CACHE BOOL "")
# Cover compilation with C++11 only and not higher standards.
set(CMAKE_CXX_STANDARD "11" CACHE STRING "")
-include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora33_common.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora34_common.cmake")
diff --git a/.gitlab/ci/configure_fedora33_ninja_multi.cmake b/.gitlab/ci/configure_fedora34_ninja_multi.cmake
index efb4b84..efb4b84 100644
--- a/.gitlab/ci/configure_fedora33_ninja_multi.cmake
+++ b/.gitlab/ci/configure_fedora34_ninja_multi.cmake
diff --git a/.gitlab/ci/configure_fedora33_sphinx.cmake b/.gitlab/ci/configure_fedora34_sphinx.cmake
index 90d159b..90d159b 100644
--- a/.gitlab/ci/configure_fedora33_sphinx.cmake
+++ b/.gitlab/ci/configure_fedora34_sphinx.cmake
diff --git a/.gitlab/ci/configure_fedora33_sphinx_package.cmake b/.gitlab/ci/configure_fedora34_sphinx_package.cmake
index e839de8..e839de8 100644
--- a/.gitlab/ci/configure_fedora33_sphinx_package.cmake
+++ b/.gitlab/ci/configure_fedora34_sphinx_package.cmake
diff --git a/.gitlab/ci/configure_fedora34_tidy.cmake b/.gitlab/ci/configure_fedora34_tidy.cmake
new file mode 100644
index 0000000..9c79303
--- /dev/null
+++ b/.gitlab/ci/configure_fedora34_tidy.cmake
@@ -0,0 +1,3 @@
+set(CMake_RUN_CLANG_TIDY ON CACHE BOOL "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora34_common.cmake")
diff --git a/.gitlab/ci/configure_intelclassic_makefiles.cmake b/.gitlab/ci/configure_intelclassic_makefiles.cmake
new file mode 100644
index 0000000..469b825
--- /dev/null
+++ b/.gitlab/ci/configure_intelclassic_makefiles.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_intelcompiler_common.cmake")
diff --git a/.gitlab/ci/configure_intelcompiler_common.cmake b/.gitlab/ci/configure_intelcompiler_common.cmake
new file mode 100644
index 0000000..be175e4
--- /dev/null
+++ b/.gitlab/ci/configure_intelcompiler_common.cmake
@@ -0,0 +1,10 @@
+set(CMake_TEST_FindBLAS "All;Intel10_64lp;Intel10_64lp.gcc" CACHE STRING "")
+set(CMake_TEST_FindBLAS_All "Intel10_64lp" CACHE STRING "")
+set(CMake_TEST_FindBLAS_STATIC "All;Intel10_64lp;Intel10_64lp.gcc" CACHE STRING "")
+set(CMake_TEST_FindBLAS_STATIC_All "Intel10_64lp" CACHE STRING "")
+set(CMake_TEST_FindLAPACK "All;Intel10_64lp;Intel10_64lp.gcc" CACHE STRING "")
+set(CMake_TEST_FindLAPACK_All "Intel10_64lp" CACHE STRING "")
+set(CMake_TEST_FindLAPACK_STATIC "All;Intel10_64lp;Intel10_64lp.gcc" CACHE STRING "")
+set(CMake_TEST_FindLAPACK_STATIC_All "Intel10_64lp" CACHE STRING "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
diff --git a/.gitlab/ci/configure_inteloneapi_makefiles.cmake b/.gitlab/ci/configure_inteloneapi_makefiles.cmake
new file mode 100644
index 0000000..469b825
--- /dev/null
+++ b/.gitlab/ci/configure_inteloneapi_makefiles.cmake
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/configure_intelcompiler_common.cmake")
diff --git a/.gitlab/ci/configure_windows_vs2019_x64_ninja.cmake b/.gitlab/ci/configure_windows_vs2019_x64_ninja.cmake
index 9c30a4b..e1ae81e 100644
--- a/.gitlab/ci/configure_windows_vs2019_x64_ninja.cmake
+++ b/.gitlab/ci/configure_windows_vs2019_x64_ninja.cmake
@@ -1,4 +1,7 @@
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")
diff --git a/.gitlab/ci/ctest_exclusions.cmake b/.gitlab/ci/ctest_exclusions.cmake
index a68a693..3460d48 100644
--- a/.gitlab/ci/ctest_exclusions.cmake
+++ b/.gitlab/ci/ctest_exclusions.cmake
@@ -13,12 +13,10 @@ if (CTEST_CMAKE_GENERATOR MATCHES "Visual Studio")
"^ExternalProjectUpdateSetup$")
endif ()
-if (CMAKE_HOST_WIN32)
+if ("$ENV{CMAKE_CONFIGURATION}" MATCHES "_asan")
list(APPEND test_exclusions
- # This test often fails with an undiagnosed subtle race due to the test
- # re-using the same objects for many files. Some copy operations fail
- # to open their input with ERROR_SHARING_VIOLATION.
- "^Module.ExternalData$"
+ CTestTest2 # crashes on purpose
+ BootstrapTest # no need to cover this for asan
)
endif()
diff --git a/.gitlab/ci/ctest_memcheck.cmake b/.gitlab/ci/ctest_memcheck.cmake
new file mode 100644
index 0000000..dac907c
--- /dev/null
+++ b/.gitlab/ci/ctest_memcheck.cmake
@@ -0,0 +1,45 @@
+cmake_minimum_required(VERSION 3.8)
+
+include("${CMAKE_CURRENT_LIST_DIR}/gitlab_ci.cmake")
+
+# Read the files from the build directory.
+ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
+
+# Pick up from where the configure left off.
+ctest_start(APPEND)
+
+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 ()
+
+set(CTEST_MEMORYCHECK_TYPE "$ENV{CTEST_MEMORYCHECK_TYPE}")
+set(CTEST_MEMORYCHECK_SANITIZER_OPTIONS "$ENV{CTEST_MEMORYCHECK_SANITIZER_OPTIONS}")
+
+set(lsan_suppressions "${CMAKE_CURRENT_LIST_DIR}/ctest_memcheck_$ENV{CMAKE_CONFIGURATION}.lsan.supp")
+if (EXISTS "${lsan_suppressions}")
+ set(ENV{LSAN_OPTIONS} "suppressions='${lsan_suppressions}'")
+endif ()
+
+include("${CMAKE_CURRENT_LIST_DIR}/ctest_exclusions.cmake")
+ctest_memcheck(
+ PARALLEL_LEVEL "${nproc}"
+ TEST_LOAD "${nproc}"
+ RETURN_VALUE test_result
+ EXCLUDE "${test_exclusions}"
+ DEFECT_COUNT defects)
+ctest_submit(PARTS Test)
+ctest_submit(PARTS Memcheck)
+
+if (test_result)
+ message(FATAL_ERROR
+ "Failed to test")
+endif ()
+
+if (defects)
+ message(FATAL_ERROR
+ "Found ${defects} memcheck defects")
+endif ()
diff --git a/.gitlab/ci/ctest_memcheck_fedora34_asan.lsan.supp b/.gitlab/ci/ctest_memcheck_fedora34_asan.lsan.supp
new file mode 100644
index 0000000..8ec1a03
--- /dev/null
+++ b/.gitlab/ci/ctest_memcheck_fedora34_asan.lsan.supp
@@ -0,0 +1 @@
+# Add 'leak:<pattern>' lines here to suppress known leaks.
diff --git a/.gitlab/ci/ctest_test.cmake b/.gitlab/ci/ctest_test.cmake
index facf9ba..b02d032 100644
--- a/.gitlab/ci/ctest_test.cmake
+++ b/.gitlab/ci/ctest_test.cmake
@@ -20,6 +20,7 @@ include("${CMAKE_CURRENT_LIST_DIR}/ctest_exclusions.cmake")
ctest_test(
PARALLEL_LEVEL "${nproc}"
TEST_LOAD "${nproc}"
+ OUTPUT_JUNIT "${CTEST_BINARY_DIRECTORY}/junit.xml"
RETURN_VALUE test_result
EXCLUDE "${test_exclusions}")
ctest_submit(PARTS Test)
diff --git a/.gitlab/ci/ctest_test_external.cmake b/.gitlab/ci/ctest_test_external.cmake
index 6576c26..48e910b 100644
--- a/.gitlab/ci/ctest_test_external.cmake
+++ b/.gitlab/ci/ctest_test_external.cmake
@@ -74,6 +74,7 @@ include("${CMAKE_CURRENT_LIST_DIR}/ctest_exclusions.cmake")
ctest_test(
PARALLEL_LEVEL "${nproc}"
TEST_LOAD "${nproc}"
+ OUTPUT_JUNIT "${CTEST_BINARY_DIRECTORY}/junit.xml"
RETURN_VALUE test_result
${ctest_label_args}
EXCLUDE "${test_exclusions}")
diff --git a/.gitlab/ci/docker/cuda10.2/Dockerfile b/.gitlab/ci/docker/cuda10.2/Dockerfile
index e0ea0e7..b6f37b5 100644
--- a/.gitlab/ci/docker/cuda10.2/Dockerfile
+++ b/.gitlab/ci/docker/cuda10.2/Dockerfile
@@ -1,5 +1,9 @@
FROM nvidia/cuda:10.2-devel-ubuntu18.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/cuda10.2/install_deps.sh b/.gitlab/ci/docker/cuda10.2/install_deps.sh
index 0d57cd3..6d53997 100755
--- a/.gitlab/ci/docker/cuda10.2/install_deps.sh
+++ b/.gitlab/ci/docker/cuda10.2/install_deps.sh
@@ -7,6 +7,7 @@ apt-get update
# Install development tools.
apt-get install -y \
g++ \
+ clang-11 \
curl \
git
diff --git a/.gitlab/ci/docker/cuda10.2/llvm-snapshot.gpg.key b/.gitlab/ci/docker/cuda10.2/llvm-snapshot.gpg.key
new file mode 100644
index 0000000..aa6b105
--- /dev/null
+++ b/.gitlab/ci/docker/cuda10.2/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/cuda10.2/llvm.list b/.gitlab/ci/docker/cuda10.2/llvm.list
new file mode 100644
index 0000000..79f8265
--- /dev/null
+++ b/.gitlab/ci/docker/cuda10.2/llvm.list
@@ -0,0 +1,2 @@
+deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main
+deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main
diff --git a/.gitlab/ci/docker/debian10-aarch64/install_deps.sh b/.gitlab/ci/docker/debian10-aarch64/install_deps.sh
index d84b3c8..f2ffcd6 100755
--- a/.gitlab/ci/docker/debian10-aarch64/install_deps.sh
+++ b/.gitlab/ci/docker/debian10-aarch64/install_deps.sh
@@ -27,6 +27,7 @@ apt-get install -y \
apt-get install -y \
alsa-utils \
doxygen graphviz \
+ freeglut3-dev \
gnutls-dev \
libarchive-dev \
libblas-dev \
@@ -45,6 +46,7 @@ apt-get install -y \
libgif-dev \
libgl1-mesa-dev \
libglew-dev \
+ libgrpc++-dev libgrpc-dev \
libgsl-dev \
libgtest-dev \
libgtk2.0-dev \
@@ -56,7 +58,7 @@ apt-get install -y \
libopenmpi-dev openmpi-bin \
libpng-dev \
libpq-dev postgresql-server-dev-11 \
- libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler \
+ libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler protobuf-compiler-grpc \
libsdl-dev \
libsqlite3-dev \
libtiff-dev \
diff --git a/.gitlab/ci/docker/debian10/install_deps.sh b/.gitlab/ci/docker/debian10/install_deps.sh
index e6c9ba0..14dc67d 100755
--- a/.gitlab/ci/docker/debian10/install_deps.sh
+++ b/.gitlab/ci/docker/debian10/install_deps.sh
@@ -27,6 +27,7 @@ apt-get install -y \
apt-get install -y \
alsa-utils \
doxygen graphviz \
+ freeglut3-dev \
gnutls-dev \
libarchive-dev \
libblas-dev \
@@ -45,6 +46,7 @@ apt-get install -y \
libgif-dev \
libgl1-mesa-dev \
libglew-dev \
+ libgrpc++-dev libgrpc-dev \
libgsl-dev \
libgtest-dev \
libgtk2.0-dev \
@@ -56,7 +58,7 @@ apt-get install -y \
libopenmpi-dev openmpi-bin \
libpng-dev \
libpq-dev postgresql-server-dev-11 \
- libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler \
+ libprotobuf-dev libprotobuf-c-dev libprotoc-dev protobuf-compiler protobuf-compiler-grpc \
libsdl-dev \
libsqlite3-dev \
libtiff-dev \
diff --git a/.gitlab/ci/docker/debian10/install_rvm.sh b/.gitlab/ci/docker/debian10/install_rvm.sh
index 2bea511..75c5adc 100755
--- a/.gitlab/ci/docker/debian10/install_rvm.sh
+++ b/.gitlab/ci/docker/debian10/install_rvm.sh
@@ -8,7 +8,7 @@ apt-get install -y \
gnupg2 \
procps
-gpg2 --keyserver hkp://pool.sks-keyservers.net \
+gpg2 --keyserver hkps://keyserver.ubuntu.com \
--recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
7D2BAF1CF37B13E2069D6956105BD0E739499BDB
diff --git a/.gitlab/ci/docker/fedora33/Dockerfile b/.gitlab/ci/docker/fedora34/Dockerfile
index 8ebcb9e..af2322d 100644
--- a/.gitlab/ci/docker/fedora33/Dockerfile
+++ b/.gitlab/ci/docker/fedora34/Dockerfile
@@ -1,10 +1,10 @@
-FROM fedora:33 as rvm-build
+FROM fedora:34 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:33
+FROM fedora:34
MAINTAINER Ben Boeckel <ben.boeckel@kitware.com>
COPY install_deps.sh /root/install_deps.sh
diff --git a/.gitlab/ci/docker/fedora33/install_deps.sh b/.gitlab/ci/docker/fedora34/install_deps.sh
index cdfe35e..878b5f8 100755
--- a/.gitlab/ci/docker/fedora33/install_deps.sh
+++ b/.gitlab/ci/docker/fedora34/install_deps.sh
@@ -6,11 +6,13 @@ set -e
dnf install --setopt=install_weak_deps=False -y \
ncurses-devel \
openssl-devel \
- qt5-qtbase-devel
+ qt5-qtbase-devel \
+ qt6-qtbase-devel
# Install development tools.
dnf install --setopt=install_weak_deps=False -y \
clang-tools-extra \
+ compiler-rt \
gcc-c++ \
git-core \
make
@@ -19,7 +21,13 @@ dnf install --setopt=install_weak_deps=False -y \
dnf install --setopt=install_weak_deps=False -y \
python3-sphinx \
texinfo \
- qt5-qttools-devel
+ qt5-qttools-devel \
+ qt6-qttools-devel
+
+# Install lint tools.
+dnf install --setopt=install_weak_deps=False -y \
+ clang-analyzer \
+ codespell
# Tools needed for the test suite.
dnf install --setopt=install_weak_deps=False -y \
@@ -28,6 +36,10 @@ dnf install --setopt=install_weak_deps=False -y \
jq \
which
+# Packages needed to test CPack.
+dnf install --setopt=install_weak_deps=False -y \
+ rpm-build
+
# Packages needed to test find modules.
dnf install --setopt=install_weak_deps=False -y \
alsa-lib-devel \
@@ -39,6 +51,7 @@ dnf install --setopt=install_weak_deps=False -y \
doxygen \
expat-devel \
fontconfig-devel \
+ freeglut-devel \
freetype-devel \
gdal-devel \
gettext \
@@ -46,6 +59,7 @@ dnf install --setopt=install_weak_deps=False -y \
glew-devel \
gmock \
gnutls-devel \
+ grpc-devel grpc-plugins \
gsl-devel \
gtest-devel \
gtk2-devel \
@@ -61,13 +75,14 @@ dnf install --setopt=install_weak_deps=False -y \
libuv-devel \
libxml2-devel \
libxslt-devel \
+ mpich-devel \
openmpi-devel \
patch \
perl \
protobuf-devel protobuf-c-devel protobuf-lite-devel \
pypy2 pypy2-devel \
pypy3 pypy3-devel \
- python2 python2-devel python2-numpy \
+ python2 python2-devel \
python3 python3-devel python3-numpy \
python3-jsmin python3-jsonschema \
ruby rubygems ruby-devel \
@@ -80,3 +95,9 @@ dnf install --setopt=install_weak_deps=False -y \
xz-devel
dnf clean all
+
+# Fedora no longer packages python2 numpy.
+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
diff --git a/.gitlab/ci/docker/fedora33/install_ispc.sh b/.gitlab/ci/docker/fedora34/install_ispc.sh
index fdc14b5..fdc14b5 100755
--- a/.gitlab/ci/docker/fedora33/install_ispc.sh
+++ b/.gitlab/ci/docker/fedora34/install_ispc.sh
diff --git a/.gitlab/ci/docker/fedora33/install_rvm.sh b/.gitlab/ci/docker/fedora34/install_rvm.sh
index 6d4fa97..fca5104 100755
--- a/.gitlab/ci/docker/fedora33/install_rvm.sh
+++ b/.gitlab/ci/docker/fedora34/install_rvm.sh
@@ -2,7 +2,7 @@
set -e
-gpg2 --keyserver hkp://pool.sks-keyservers.net \
+gpg2 --keyserver hkps://keyserver.ubuntu.com \
--recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
7D2BAF1CF37B13E2069D6956105BD0E739499BDB
diff --git a/.gitlab/ci/env.sh b/.gitlab/ci/env.sh
new file mode 100644
index 0000000..7634f5d
--- /dev/null
+++ b/.gitlab/ci/env.sh
@@ -0,0 +1,14 @@
+quietly() {
+ readonly log="/tmp/quietly-$RANDOM.log"
+ if ! "$@" >"$log" 2>&1; then
+ ret=$?
+ cat "$log"
+ rm -f "$log"
+ exit $ret
+ fi
+ rm -f "$log"
+}
+
+if test -r ".gitlab/ci/env_${CMAKE_CONFIGURATION}.sh"; then
+ source ".gitlab/ci/env_${CMAKE_CONFIGURATION}.sh"
+fi
diff --git a/.gitlab/ci/env_cuda10.2_clang.sh b/.gitlab/ci/env_cuda10.2_clang.sh
new file mode 100644
index 0000000..d3b2530
--- /dev/null
+++ b/.gitlab/ci/env_cuda10.2_clang.sh
@@ -0,0 +1,3 @@
+export CC=/usr/bin/clang-11
+export CXX=/usr/bin/clang++-11
+export CUDACXX=/usr/bin/clang++-11
diff --git a/.gitlab/ci/env_debian10_makefiles_clang.sh b/.gitlab/ci/env_debian10_makefiles_clang.sh
new file mode 100644
index 0000000..e0d5d61
--- /dev/null
+++ b/.gitlab/ci/env_debian10_makefiles_clang.sh
@@ -0,0 +1,2 @@
+export CC=/usr/bin/clang-7
+export CXX=/usr/bin/clang++-7
diff --git a/.gitlab/ci/env_debian10_ninja_clang.sh b/.gitlab/ci/env_debian10_ninja_clang.sh
new file mode 100644
index 0000000..e0d5d61
--- /dev/null
+++ b/.gitlab/ci/env_debian10_ninja_clang.sh
@@ -0,0 +1,2 @@
+export CC=/usr/bin/clang-7
+export CXX=/usr/bin/clang++-7
diff --git a/.gitlab/ci/env_fedora34_asan.sh b/.gitlab/ci/env_fedora34_asan.sh
new file mode 100644
index 0000000..e976486
--- /dev/null
+++ b/.gitlab/ci/env_fedora34_asan.sh
@@ -0,0 +1,2 @@
+export CC=/usr/bin/clang
+export CXX=/usr/bin/clang++
diff --git a/.gitlab/ci/env_fedora34_clang_analyzer.sh b/.gitlab/ci/env_fedora34_clang_analyzer.sh
new file mode 100644
index 0000000..d732c0b
--- /dev/null
+++ b/.gitlab/ci/env_fedora34_clang_analyzer.sh
@@ -0,0 +1,2 @@
+export CC=/usr/libexec/ccc-analyzer
+export CXX=/usr/libexec/c++-analyzer
diff --git a/.gitlab/ci/env_fedora33_makefiles.cmake b/.gitlab/ci/env_fedora34_makefiles.cmake
index 1d0efa7..aa84e23 100644
--- a/.gitlab/ci/env_fedora33_makefiles.cmake
+++ b/.gitlab/ci/env_fedora34_makefiles.cmake
@@ -1,2 +1,2 @@
set(ENV{MY_RUBY_HOME} "/usr/local/rvm/rubies/ruby-2.7.0")
-set(ENV{PATH} "/usr/lib64/openmpi/bin:$ENV{PATH}")
+set(ENV{PATH} "/usr/lib64/mpich/bin:$ENV{PATH}")
diff --git a/.gitlab/ci/env_intelclassic_common.sh b/.gitlab/ci/env_intelclassic_common.sh
new file mode 100644
index 0000000..22b1d03
--- /dev/null
+++ b/.gitlab/ci/env_intelclassic_common.sh
@@ -0,0 +1,9 @@
+source .gitlab/ci/env_intelcompiler_license.sh
+
+if test -r /opt/intel/oneapi/setvars.sh; then
+ source /opt/intel/oneapi/setvars.sh
+elif test -r /opt/intel/bin/compilervars.sh; then
+ source /opt/intel/bin/compilervars.sh intel64
+fi
+
+export CC=icc CXX=icpc FC=ifort
diff --git a/.gitlab/ci/env_intelclassic_makefiles.sh b/.gitlab/ci/env_intelclassic_makefiles.sh
new file mode 100644
index 0000000..d1ff85e
--- /dev/null
+++ b/.gitlab/ci/env_intelclassic_makefiles.sh
@@ -0,0 +1 @@
+source .gitlab/ci/env_intelclassic_common.sh
diff --git a/.gitlab/ci/env_intelcompiler_license.sh b/.gitlab/ci/env_intelcompiler_license.sh
new file mode 100644
index 0000000..54743b2
--- /dev/null
+++ b/.gitlab/ci/env_intelcompiler_license.sh
@@ -0,0 +1,8 @@
+if test -n "$CMAKE_CI_INTELCOMPILER_LICENSE"; then
+ if test -d /opt/intel/licenses; then
+ mv "$CMAKE_CI_INTELCOMPILER_LICENSE" /opt/intel/licenses/ci.lic
+ else
+ rm "$CMAKE_CI_INTELCOMPILER_LICENSE"
+ fi
+ unset CMAKE_CI_INTELCOMPILER_LICENSE
+fi
diff --git a/.gitlab/ci/env_inteloneapi_common.sh b/.gitlab/ci/env_inteloneapi_common.sh
new file mode 100644
index 0000000..beaf3fe
--- /dev/null
+++ b/.gitlab/ci/env_inteloneapi_common.sh
@@ -0,0 +1,7 @@
+source .gitlab/ci/env_intelcompiler_license.sh
+
+if test -r /opt/intel/oneapi/setvars.sh; then
+ source /opt/intel/oneapi/setvars.sh
+fi
+
+export CC=icx CXX=icpx FC=ifx
diff --git a/.gitlab/ci/env_inteloneapi_makefiles.sh b/.gitlab/ci/env_inteloneapi_makefiles.sh
new file mode 100644
index 0000000..eefcdda
--- /dev/null
+++ b/.gitlab/ci/env_inteloneapi_makefiles.sh
@@ -0,0 +1 @@
+source .gitlab/ci/env_inteloneapi_common.sh
diff --git a/.gitlab/ci/gitlab_ci.cmake b/.gitlab/ci/gitlab_ci.cmake
index f863a27..697162c 100644
--- a/.gitlab/ci/gitlab_ci.cmake
+++ b/.gitlab/ci/gitlab_ci.cmake
@@ -17,13 +17,17 @@ if ("$ENV{CMAKE_CONFIGURATION}" STREQUAL "")
endif ()
# Set the build metadata.
-set(CTEST_BUILD_NAME "$ENV{CI_PROJECT_NAME}-$ENV{CMAKE_CONFIGURATION}")
+if(NOT "$ENV{CMAKE_CI_BUILD_NAME}" STREQUAL "")
+ set(CTEST_BUILD_NAME "$ENV{CI_PROJECT_NAME}-$ENV{CMAKE_CI_BUILD_NAME}")
+else()
+ set(CTEST_BUILD_NAME "$ENV{CI_PROJECT_NAME}-$ENV{CMAKE_CONFIGURATION}")
+endif()
set(CTEST_SITE "gitlab-ci")
set(ctest_model "Experimental")
# Default to Release builds.
-if (NOT "$ENV{CMAKE_BUILD_TYPE}" STREQUAL "")
- set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_BUILD_TYPE}")
+if (NOT "$ENV{CMAKE_CI_BUILD_TYPE}" STREQUAL "")
+ set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CI_BUILD_TYPE}")
endif ()
if (NOT CTEST_BUILD_CONFIGURATION)
set(CTEST_BUILD_CONFIGURATION "Release")
diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml
index 2670ba5..95cab05 100644
--- a/.gitlab/os-linux.yml
+++ b/.gitlab/os-linux.yml
@@ -5,7 +5,7 @@
### Release
.linux_prep_source:
- image: "fedora:33"
+ image: "fedora:34"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -30,10 +30,22 @@
variables:
BOOTSTRAP_ARGS: '-- "-DCMake_DOC_ARTIFACT_PREFIX=$CI_PROJECT_DIR/build/install-doc"'
+.needs_centos6_x86_64:
+ dependencies:
+ - build:centos6-x86_64
+ needs:
+ - build:centos6-x86_64
+
+.needs_centos7_aarch64:
+ dependencies:
+ - build:centos7-aarch64
+ needs:
+ - build:centos7-aarch64
+
### Debian
.debian10:
- image: "kitware/cmake:ci-debian10-x86_64-2021-04-06"
+ image: "kitware/cmake:ci-debian10-x86_64-2021-06-28"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -48,7 +60,7 @@
CMake_SKIP_INSTALL: 1
.debian10_aarch64:
- image: "kitware/cmake:ci-debian10-aarch64-2021-04-06"
+ image: "kitware/cmake:ci-debian10-aarch64-2021-06-28"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -56,8 +68,8 @@
### Fedora
-.fedora33:
- image: "kitware/cmake:ci-fedora33-x86_64-2021-04-06"
+.fedora34:
+ image: "kitware/cmake:ci-fedora34-x86_64-2021-06-28"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes"
@@ -65,28 +77,37 @@
#### Lint builds
-.fedora33_tidy:
- extends: .fedora33
+.fedora34_tidy:
+ extends: .fedora34
+
+ variables:
+ CMAKE_CONFIGURATION: fedora34_tidy
+ CTEST_NO_WARNINGS_ALLOWED: 1
+ CMake_SKIP_INSTALL: 1
+
+.fedora34_clang_analyzer:
+ extends: .fedora34
variables:
- CMAKE_CONFIGURATION: fedora33_tidy
+ CMAKE_CONFIGURATION: fedora34_clang_analyzer
+ CMAKE_CI_BUILD_TYPE: Debug
CTEST_NO_WARNINGS_ALLOWED: 1
CMake_SKIP_INSTALL: 1
-.fedora33_sphinx:
- extends: .fedora33
+.fedora34_sphinx:
+ extends: .fedora34
variables:
- CMAKE_CONFIGURATION: fedora33_sphinx
+ CMAKE_CONFIGURATION: fedora34_sphinx
CTEST_NO_WARNINGS_ALLOWED: 1
CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"
CMake_SKIP_INSTALL: 1
-.fedora33_sphinx_package:
- extends: .fedora33
+.fedora34_sphinx_package:
+ extends: .fedora34
variables:
- CMAKE_CONFIGURATION: fedora33_sphinx_package
+ CMAKE_CONFIGURATION: fedora34_sphinx_package
CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx"
#### Build and test
@@ -105,33 +126,90 @@
CMAKE_CONFIGURATION: debian10_aarch64_ninja
CTEST_NO_WARNINGS_ALLOWED: 1
-.fedora33_ninja:
- extends: .fedora33
+.fedora34_ninja:
+ extends: .fedora34
variables:
- CMAKE_CONFIGURATION: fedora33_ninja
+ CMAKE_CONFIGURATION: fedora34_ninja
CTEST_NO_WARNINGS_ALLOWED: 1
-.fedora33_ninja_multi:
- extends: .fedora33
+.fedora34_ninja_multi:
+ extends: .fedora34
variables:
- CMAKE_CONFIGURATION: fedora33_ninja_multi
+ CMAKE_CONFIGURATION: fedora34_ninja_multi
CTEST_NO_WARNINGS_ALLOWED: 1
CMAKE_GENERATOR: "Ninja Multi-Config"
-.fedora33_makefiles:
- extends: .fedora33
+.fedora34_makefiles:
+ extends: .fedora34
variables:
- CMAKE_CONFIGURATION: fedora33_makefiles
+ CMAKE_CONFIGURATION: fedora34_makefiles
CTEST_NO_WARNINGS_ALLOWED: 1
CMAKE_GENERATOR: "Unix Makefiles"
+### Clang Compiler
+
+.debian10_makefiles_clang:
+ extends: .debian10
+
+ variables:
+ CMAKE_CONFIGURATION: debian10_makefiles_clang
+ CMAKE_GENERATOR: "Unix Makefiles"
+
+.debian10_ninja_clang:
+ extends: .debian10
+
+ variables:
+ CMAKE_CONFIGURATION: debian10_ninja_clang
+
+### Sanitizers
+
+.fedora_memcheck:
+ variables:
+ CMAKE_CI_BUILD_TYPE: RelWithDebInfo
+
+.fedora_asan_addon:
+ extends: .fedora_memcheck
+
+ variables:
+ CTEST_MEMORYCHECK_TYPE: AddressSanitizer
+ CTEST_MEMORYCHECK_SANITIZER_OPTIONS: ""
+
+.fedora34_asan:
+ extends:
+ - .fedora34
+ - .fedora_asan_addon
+
+ variables:
+ CMAKE_CONFIGURATION: fedora34_asan
+
+### Intel Compiler
+
+.intelcompiler:
+ image: "kitware/intelcompiler:$CMAKE_CI_INTELCOMPILER_IMAGE_TAG"
+ environment:
+ name: intel-compiler
+ variables:
+ CMAKE_ARCH: x86_64
+
+.intelclassic_makefiles:
+ extends: .intelcompiler
+ variables:
+ CMAKE_CONFIGURATION: intelclassic_makefiles
+ CMAKE_GENERATOR: "Unix Makefiles"
+
+.inteloneapi_makefiles:
+ extends: .intelcompiler
+ variables:
+ CMAKE_CONFIGURATION: inteloneapi_makefiles
+ CMAKE_GENERATOR: "Unix Makefiles"
+
### CUDA builds
.cuda10.2:
- image: "kitware/cmake:ci-cuda10.2-x86_64-2020-06-11"
+ image: "kitware/cmake:ci-cuda10.2-x86_64-2021-06-16"
variables:
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
@@ -145,6 +223,13 @@
CMAKE_CONFIGURATION: cuda10.2_nvidia
CTEST_NO_WARNINGS_ALLOWED: 1
+.cuda10.2_clang:
+ extends: .cuda10.2
+
+ variables:
+ CMAKE_CONFIGURATION: cuda10.2_clang
+ CTEST_NO_WARNINGS_ALLOWED: 1
+
## Tags
.linux_builder_tags:
@@ -195,6 +280,7 @@
## Linux-specific scripts
.before_script_linux: &before_script_linux
+ - source .gitlab/ci/env.sh
- .gitlab/ci/cmake.sh
- .gitlab/ci/ninja.sh
- export PATH=$PWD/.gitlab:$PWD/.gitlab/cmake/bin:$PATH
@@ -224,6 +310,13 @@
interruptible: true
+.cmake_codespell_linux:
+ stage: build
+ extends: .fedora34
+ script:
+ - codespell
+ interruptible: true
+
.cmake_build_linux:
stage: build
@@ -247,10 +340,20 @@
interruptible: true
+.cmake_memcheck_linux:
+ stage: test
+
+ script:
+ - *before_script_linux
+ - "$LAUNCHER ctest --output-on-failure -V -S .gitlab/ci/ctest_memcheck.cmake"
+
+ interruptible: true
+
.cmake_build_linux_release:
stage: build
script:
+ - source .gitlab/ci/env.sh
# Bootstrap.
- mkdir -p build/
# Exclude documentation. A job dependency provides it for packaging.
@@ -313,3 +416,38 @@
- sccache --show-stats
interruptible: true
+
+.cmake_test_linux_intelclassic_makefiles:
+ extends:
+ - .intelclassic_makefiles
+ - .cmake_test_linux_release
+ - .linux_builder_tags_qt
+ - .run_manually
+ - .needs_centos6_x86_64
+ variables:
+ CMAKE_CI_JOB_NIGHTLY: "true"
+
+.cmake_test_linux_inteloneapi_makefiles:
+ extends:
+ - .inteloneapi_makefiles
+ - .cmake_test_linux_release
+ - .linux_builder_tags_qt
+ - .run_manually
+ - .needs_centos6_x86_64
+ variables:
+ CMAKE_CI_JOB_NIGHTLY: "true"
+
+### Documentation
+
+.cmake_org_help:
+ stage: build
+ extends:
+ - .fedora34
+ - .linux_builder_tags
+ - .cmake_org_help_artifacts
+ script:
+ - *before_script_linux
+ - mkdir -p build/
+ - cd build/
+ - cmake ../Utilities/Sphinx -GNinja -DSPHINX_HTML=ON -DSPHINX_FLAGS="-A versionswitch=1"
+ - ninja
diff --git a/.gitlab/os-windows.yml b/.gitlab/os-windows.yml
index fb72ff1..90ff0a8 100644
--- a/.gitlab/os-windows.yml
+++ b/.gitlab/os-windows.yml
@@ -28,7 +28,7 @@
# Debug and RelWithDebinfo build types use the `/Zi` which results in
# uncacheable compiations.
# https://github.com/mozilla/sccache/issues/242
- CMAKE_BUILD_TYPE: Release
+ CMAKE_CI_BUILD_TYPE: Release
CTEST_NO_WARNINGS_ALLOWED: 1
.windows_vs2019_x64_ninja:
diff --git a/.gitlab/rules.yml b/.gitlab/rules.yml
index 256f567..4846fea 100644
--- a/.gitlab/rules.yml
+++ b/.gitlab/rules.yml
@@ -6,7 +6,9 @@
when: never
- if: '$CMAKE_CI_NIGHTLY == "true"'
when: on_success
- - if: '($CMAKE_CI_PROJECT_CONTINUOUS_BRANCH != "" && $CI_COMMIT_BRANCH == $CMAKE_CI_PROJECT_CONTINUOUS_BRANCH && $CMAKE_CI_JOB_CONTINUOUS == "true")'
+ - 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: delayed
start_in: 5 minutes
- if: '($CMAKE_CI_NO_MR == "true" && $CI_MERGE_REQUEST_ID)'
@@ -24,7 +26,9 @@
when: never
- if: '$CMAKE_CI_NIGHTLY == "true"'
when: on_success
- - if: '($CMAKE_CI_PROJECT_CONTINUOUS_BRANCH != "" && $CI_COMMIT_BRANCH == $CMAKE_CI_PROJECT_CONTINUOUS_BRANCH && $CMAKE_CI_JOB_CONTINUOUS == "true")'
+ - 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
@@ -43,6 +47,8 @@
when: always
- if: '$CMAKE_CI_NIGHTLY == "true"'
when: on_success
+ - if: '$CMAKE_CI_JOB_NIGHTLY == "true"'
+ when: never
- if: '($CMAKE_CI_NO_MR == "true" && $CI_MERGE_REQUEST_ID)'
when: never
- if: '$CI_MERGE_REQUEST_ID'
@@ -56,3 +62,15 @@
- if: '$CMAKE_CI_PACKAGE == "true"'
when: on_success
- when: never
+
+.run_only_for_continuous_master:
+ rules:
+ - if: '$CMAKE_CI_PROJECT_MAIN_BRANCH != null && $CI_COMMIT_BRANCH != null && $CMAKE_CI_PROJECT_MAIN_BRANCH == $CI_COMMIT_BRANCH'
+ when: on_success
+ - when: never
+
+.run_only_for_continuous_stage:
+ rules:
+ - if: '$CMAKE_CI_PROJECT_CONTINUOUS_BRANCH != null && $CI_COMMIT_BRANCH != null && $CMAKE_CI_PROJECT_CONTINUOUS_BRANCH == $CI_COMMIT_BRANCH'
+ when: on_success
+ - when: never
diff --git a/.gitlab/upload.yml b/.gitlab/upload.yml
index 8b8daa1..693388d 100644
--- a/.gitlab/upload.yml
+++ b/.gitlab/upload.yml
@@ -1,9 +1,10 @@
# Steps for uploading artifacts
-.rsync_upload:
- image: "fedora:32"
+.rsync_upload_binary:
+ image: "fedora:34"
stage: upload
tags:
+ - cmake
- docker
- linux
- build
@@ -16,3 +17,21 @@
- chmod 400 $RSYNC_BINARY_KEY
- ssh-keygen -y -f $RSYNC_BINARY_KEY > $RSYNC_BINARY_KEY.pub
- rsync -tv --recursive -e "ssh -i $RSYNC_BINARY_KEY -o StrictHostKeyChecking=no -o LogLevel=ERROR" build/ kitware@cmake.org:$RSYNC_DESTINATION/
+
+.rsync_upload_help:
+ stage: upload
+ image: "fedora:34"
+ tags:
+ - cmake
+ - docker
+ - linux
+ - build
+ environment:
+ name: rsync-upload
+
+ script:
+ - ls build/html/index.html
+ - dnf install -y --setopt=install_weak_deps=False rsync openssh-clients
+ - chmod 400 $RSYNC_HELP_KEY
+ - ssh-keygen -y -f $RSYNC_HELP_KEY > $RSYNC_HELP_KEY.pub
+ - rsync -tv --recursive --delete -e "ssh -i $RSYNC_HELP_KEY -o StrictHostKeyChecking=no -o LogLevel=ERROR" build/html/ kitware@cmake.org:$RSYNC_DESTINATION/