diff options
Diffstat (limited to '.gitlab')
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 |