diff options
Diffstat (limited to '.gitlab')
56 files changed, 274 insertions, 52 deletions
diff --git a/.gitlab/.gitignore b/.gitlab/.gitignore index d62e477..10d03ca 100644 --- a/.gitlab/.gitignore +++ b/.gitlab/.gitignore @@ -5,8 +5,10 @@ /ispc* /jom /llvm* +/mingw /msvc* /ninja* +/openmp /open-watcom* /python* /qt* diff --git a/.gitlab/ci/cmake.ps1 b/.gitlab/ci/cmake.ps1 index 98aeae3..3efb67a 100755 --- a/.gitlab/ci/cmake.ps1 +++ b/.gitlab/ci/cmake.ps1 @@ -1,8 +1,18 @@ $erroractionpreference = "stop" $version = "3.24.1" -$sha256sum = "C1B17431A16337D517F7BA78C7067B6F143A12686CB8087F3DD32F3FA45F5AAE" -$filename = "cmake-$version-windows-x86_64" + +if ("$env:PROCESSOR_ARCHITECTURE" -eq "AMD64") { + $sha256sum = "C1B17431A16337D517F7BA78C7067B6F143A12686CB8087F3DD32F3FA45F5AAE" + $platform = "windows-x86_64" +} elseif ("$env:PROCESSOR_ARCHITECTURE" -eq "ARM64") { + $sha256sum = "D94683F3B0E63F6EF194C621194F6E26F3735EDA70750395E0F2BBEE4023FB95" + $platform = "windows-arm64" +} else { + throw ('unknown PROCESSOR_ARCHITECTURE: ' + "$env:PROCESSOR_ARCHITECTURE") +} + +$filename = "cmake-$version-$platform" $tarball = "$filename.zip" $outdir = $pwd.Path diff --git a/.gitlab/ci/configure_fedora36_clang_analyzer.cmake b/.gitlab/ci/configure_fedora36_clang_analyzer.cmake deleted file mode 100644 index 456936b..0000000 --- a/.gitlab/ci/configure_fedora36_clang_analyzer.cmake +++ /dev/null @@ -1 +0,0 @@ -include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora36_common.cmake") diff --git a/.gitlab/ci/configure_fedora36_tidy.cmake b/.gitlab/ci/configure_fedora36_tidy.cmake deleted file mode 100644 index 38414d3..0000000 --- a/.gitlab/ci/configure_fedora36_tidy.cmake +++ /dev/null @@ -1,3 +0,0 @@ -set(CMake_RUN_CLANG_TIDY ON CACHE BOOL "") - -include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora36_common.cmake") diff --git a/.gitlab/ci/configure_fedora36_asan.cmake b/.gitlab/ci/configure_fedora37_asan.cmake index 51977d9..363e953 100644 --- a/.gitlab/ci/configure_fedora36_asan.cmake +++ b/.gitlab/ci/configure_fedora37_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_fedora36_common.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora37_common.cmake") diff --git a/.gitlab/ci/configure_fedora37_clang_analyzer.cmake b/.gitlab/ci/configure_fedora37_clang_analyzer.cmake new file mode 100644 index 0000000..f4c4cdd --- /dev/null +++ b/.gitlab/ci/configure_fedora37_clang_analyzer.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora37_common.cmake") diff --git a/.gitlab/ci/configure_fedora36_common.cmake b/.gitlab/ci/configure_fedora37_common.cmake index 4484e26..4484e26 100644 --- a/.gitlab/ci/configure_fedora36_common.cmake +++ b/.gitlab/ci/configure_fedora37_common.cmake diff --git a/.gitlab/ci/configure_fedora37_common_clang.cmake b/.gitlab/ci/configure_fedora37_common_clang.cmake new file mode 100644 index 0000000..70c9df9 --- /dev/null +++ b/.gitlab/ci/configure_fedora37_common_clang.cmake @@ -0,0 +1,6 @@ +set(CMAKE_Fortran_COMPILER "/usr/bin/flang-new" CACHE FILEPATH "") +set(CMAKE_Fortran_COMPILER_ID "LLVMFlang" CACHE STRING "") +set(CMAKE_Fortran_COMPILER_SUPPORTS_F90 "1" CACHE BOOL "") +set(CMAKE_Fortran_FLAGS "-flang-experimental-exec" CACHE STRING "") + +include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/.gitlab/ci/configure_fedora36_extdeps.cmake b/.gitlab/ci/configure_fedora37_extdeps.cmake index 8e545f5..8e545f5 100644 --- a/.gitlab/ci/configure_fedora36_extdeps.cmake +++ b/.gitlab/ci/configure_fedora37_extdeps.cmake diff --git a/.gitlab/ci/configure_fedora36_makefiles.cmake b/.gitlab/ci/configure_fedora37_makefiles.cmake index 11d1a08..11d1a08 100644 --- a/.gitlab/ci/configure_fedora36_makefiles.cmake +++ b/.gitlab/ci/configure_fedora37_makefiles.cmake diff --git a/.gitlab/ci/configure_fedora37_makefiles_clang.cmake b/.gitlab/ci/configure_fedora37_makefiles_clang.cmake new file mode 100644 index 0000000..7b82a9a --- /dev/null +++ b/.gitlab/ci/configure_fedora37_makefiles_clang.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora37_common_clang.cmake") diff --git a/.gitlab/ci/configure_fedora36_ninja.cmake b/.gitlab/ci/configure_fedora37_ninja.cmake index 45d9192..3defa5a 100644 --- a/.gitlab/ci/configure_fedora36_ninja.cmake +++ b/.gitlab/ci/configure_fedora37_ninja.cmake @@ -10,4 +10,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_fedora36_common.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora37_common.cmake") diff --git a/.gitlab/ci/configure_fedora37_ninja_clang.cmake b/.gitlab/ci/configure_fedora37_ninja_clang.cmake new file mode 100644 index 0000000..7b82a9a --- /dev/null +++ b/.gitlab/ci/configure_fedora37_ninja_clang.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora37_common_clang.cmake") diff --git a/.gitlab/ci/configure_fedora36_ninja_multi.cmake b/.gitlab/ci/configure_fedora37_ninja_multi.cmake index 94af721..94af721 100644 --- a/.gitlab/ci/configure_fedora36_ninja_multi.cmake +++ b/.gitlab/ci/configure_fedora37_ninja_multi.cmake diff --git a/.gitlab/ci/configure_fedora36_sphinx.cmake b/.gitlab/ci/configure_fedora37_sphinx.cmake index 90d159b..90d159b 100644 --- a/.gitlab/ci/configure_fedora36_sphinx.cmake +++ b/.gitlab/ci/configure_fedora37_sphinx.cmake diff --git a/.gitlab/ci/configure_fedora36_sphinx_package.cmake b/.gitlab/ci/configure_fedora37_sphinx_package.cmake index e839de8..e839de8 100644 --- a/.gitlab/ci/configure_fedora36_sphinx_package.cmake +++ b/.gitlab/ci/configure_fedora37_sphinx_package.cmake diff --git a/.gitlab/ci/configure_fedora37_tidy.cmake b/.gitlab/ci/configure_fedora37_tidy.cmake new file mode 100644 index 0000000..f8eb9ab --- /dev/null +++ b/.gitlab/ci/configure_fedora37_tidy.cmake @@ -0,0 +1,5 @@ +set(CMake_RUN_CLANG_TIDY ON CACHE BOOL "") +set(CMake_USE_CLANG_TIDY_MODULE ON CACHE BOOL "") +set(CMake_CLANG_TIDY_MODULE "$ENV{CI_PROJECT_DIR}/Utilities/ClangTidyModule/build/libcmake-clang-tidy-module.so" CACHE FILEPATH "") + +include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora37_common.cmake") diff --git a/.gitlab/ci/configure_macos_arm64_ninja.cmake b/.gitlab/ci/configure_macos_arm64_ninja.cmake index f657d98..1a41bc3 100644 --- a/.gitlab/ci/configure_macos_arm64_ninja.cmake +++ b/.gitlab/ci/configure_macos_arm64_ninja.cmake @@ -1,3 +1,6 @@ +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_GUI "ON" CACHE BOOL "") include("${CMAKE_CURRENT_LIST_DIR}/configure_macos_common.cmake") include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake") diff --git a/.gitlab/ci/configure_macos_x86_64_makefiles.cmake b/.gitlab/ci/configure_macos_x86_64_makefiles.cmake index d3ef93f..113fe56 100644 --- a/.gitlab/ci/configure_macos_x86_64_makefiles.cmake +++ b/.gitlab/ci/configure_macos_x86_64_makefiles.cmake @@ -1,3 +1,6 @@ +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_GUI "ON" CACHE BOOL "") if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") set(CMake_TEST_ISPC "ON" CACHE STRING "") diff --git a/.gitlab/ci/configure_macos_x86_64_ninja.cmake b/.gitlab/ci/configure_macos_x86_64_ninja.cmake index d3ef93f..113fe56 100644 --- a/.gitlab/ci/configure_macos_x86_64_ninja.cmake +++ b/.gitlab/ci/configure_macos_x86_64_ninja.cmake @@ -1,3 +1,6 @@ +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_GUI "ON" CACHE BOOL "") if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") set(CMake_TEST_ISPC "ON" CACHE STRING "") diff --git a/.gitlab/ci/configure_mingw_osdn_io_common.cmake b/.gitlab/ci/configure_mingw_osdn_io_common.cmake new file mode 100644 index 0000000..55dce1d --- /dev/null +++ b/.gitlab/ci/configure_mingw_osdn_io_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_mingw_osdn_io_mingw_makefiles.cmake b/.gitlab/ci/configure_mingw_osdn_io_mingw_makefiles.cmake new file mode 100644 index 0000000..5ddd410 --- /dev/null +++ b/.gitlab/ci/configure_mingw_osdn_io_mingw_makefiles.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_mingw_osdn_io_common.cmake") diff --git a/.gitlab/ci/configure_mingw_osdn_io_msys_makefiles.cmake b/.gitlab/ci/configure_mingw_osdn_io_msys_makefiles.cmake new file mode 100644 index 0000000..5ddd410 --- /dev/null +++ b/.gitlab/ci/configure_mingw_osdn_io_msys_makefiles.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_mingw_osdn_io_common.cmake") diff --git a/.gitlab/ci/configure_windows_arm64_vs2022.cmake b/.gitlab/ci/configure_windows_arm64_vs2022.cmake new file mode 100644 index 0000000..c7d41ea --- /dev/null +++ b/.gitlab/ci/configure_windows_arm64_vs2022.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_vs_common.cmake") diff --git a/.gitlab/ci/configure_windows_arm64_vs2022_ninja.cmake b/.gitlab/ci/configure_windows_arm64_vs2022_ninja.cmake new file mode 100644 index 0000000..722e009 --- /dev/null +++ b/.gitlab/ci/configure_windows_arm64_vs2022_ninja.cmake @@ -0,0 +1,7 @@ +# Qt host tools are not yet available natively on windows-arm64. +set(CMake_TEST_GUI "OFF" CACHE BOOL "") +set(BUILD_QtDialog "OFF" CACHE BOOL "") +set(CMAKE_PREFIX_PATH "" CACHE STRING "") + +include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_msvc_cxx_modules_common.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_vs_common_ninja.cmake") diff --git a/.gitlab/ci/ctest_memcheck_fedora36_asan.lsan.supp b/.gitlab/ci/ctest_memcheck_fedora37_asan.lsan.supp index 8ec1a03..8ec1a03 100644 --- a/.gitlab/ci/ctest_memcheck_fedora36_asan.lsan.supp +++ b/.gitlab/ci/ctest_memcheck_fedora37_asan.lsan.supp diff --git a/.gitlab/ci/docker/fedora36/Dockerfile b/.gitlab/ci/docker/fedora37/Dockerfile index ea42561..13ef9aa 100644 --- a/.gitlab/ci/docker/fedora36/Dockerfile +++ b/.gitlab/ci/docker/fedora37/Dockerfile @@ -1,22 +1,22 @@ -FROM fedora:36 as rvm-build +FROM fedora:37 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:36 AS clang-tidy-headers +FROM fedora:37 AS clang-tidy-headers MAINTAINER Kyle Edwards <kyle.edwards@kitware.com> COPY install_clang_tidy_headers.sh /root/install_clang_tidy_headers.sh RUN sh /root/install_clang_tidy_headers.sh -FROM fedora:36 AS iwyu +FROM fedora:37 AS iwyu MAINTAINER Kyle Edwards <kyle.edwards@kitware.com> COPY install_iwyu.sh /root/install_iwyu.sh RUN sh /root/install_iwyu.sh -FROM fedora:36 +FROM fedora:37 MAINTAINER Ben Boeckel <ben.boeckel@kitware.com> COPY install_deps.sh /root/install_deps.sh diff --git a/.gitlab/ci/docker/fedora36/install_clang_tidy_headers.sh b/.gitlab/ci/docker/fedora37/install_clang_tidy_headers.sh index b9883f4..b9883f4 100755 --- a/.gitlab/ci/docker/fedora36/install_clang_tidy_headers.sh +++ b/.gitlab/ci/docker/fedora37/install_clang_tidy_headers.sh diff --git a/.gitlab/ci/docker/fedora36/install_deps.sh b/.gitlab/ci/docker/fedora37/install_deps.sh index f117888..afb8560 100755 --- a/.gitlab/ci/docker/fedora36/install_deps.sh +++ b/.gitlab/ci/docker/fedora37/install_deps.sh @@ -11,8 +11,11 @@ dnf install --setopt=install_weak_deps=False -y \ # Install development tools. dnf install --setopt=install_weak_deps=False -y \ + clang \ clang-tools-extra \ compiler-rt \ + flang \ + flang-devel \ gcc-c++ \ git-core \ make diff --git a/.gitlab/ci/docker/fedora36/install_iwyu.sh b/.gitlab/ci/docker/fedora37/install_iwyu.sh index 714bcc0..714bcc0 100755 --- a/.gitlab/ci/docker/fedora36/install_iwyu.sh +++ b/.gitlab/ci/docker/fedora37/install_iwyu.sh diff --git a/.gitlab/ci/docker/fedora36/install_rvm.sh b/.gitlab/ci/docker/fedora37/install_rvm.sh index 0011f87..0011f87 100755 --- a/.gitlab/ci/docker/fedora36/install_rvm.sh +++ b/.gitlab/ci/docker/fedora37/install_rvm.sh diff --git a/.gitlab/ci/env_fedora36_asan.sh b/.gitlab/ci/env_fedora37_asan.sh index e976486..e976486 100644 --- a/.gitlab/ci/env_fedora36_asan.sh +++ b/.gitlab/ci/env_fedora37_asan.sh diff --git a/.gitlab/ci/env_fedora36_clang_analyzer.sh b/.gitlab/ci/env_fedora37_clang_analyzer.sh index d732c0b..d732c0b 100644 --- a/.gitlab/ci/env_fedora36_clang_analyzer.sh +++ b/.gitlab/ci/env_fedora37_clang_analyzer.sh diff --git a/.gitlab/ci/env_fedora37_common_clang.sh b/.gitlab/ci/env_fedora37_common_clang.sh new file mode 100644 index 0000000..b03b757 --- /dev/null +++ b/.gitlab/ci/env_fedora37_common_clang.sh @@ -0,0 +1,4 @@ +export CC=/usr/bin/clang-15 +export CXX=/usr/bin/clang++-15 +export FC=/usr/bin/flang-new +export FFLAGS=-flang-experimental-exec diff --git a/.gitlab/ci/env_fedora36_extdeps.sh b/.gitlab/ci/env_fedora37_extdeps.sh index 7076e18..7076e18 100644 --- a/.gitlab/ci/env_fedora36_extdeps.sh +++ b/.gitlab/ci/env_fedora37_extdeps.sh diff --git a/.gitlab/ci/env_fedora36_makefiles.cmake b/.gitlab/ci/env_fedora37_makefiles.cmake index 2bcb6d0..2bcb6d0 100644 --- a/.gitlab/ci/env_fedora36_makefiles.cmake +++ b/.gitlab/ci/env_fedora37_makefiles.cmake diff --git a/.gitlab/ci/env_fedora36_ninja_multi.sh b/.gitlab/ci/env_fedora37_makefiles.sh index 217ff30..217ff30 100644 --- a/.gitlab/ci/env_fedora36_ninja_multi.sh +++ b/.gitlab/ci/env_fedora37_makefiles.sh diff --git a/.gitlab/ci/env_fedora37_makefiles_clang.sh b/.gitlab/ci/env_fedora37_makefiles_clang.sh new file mode 100644 index 0000000..9ff1d84 --- /dev/null +++ b/.gitlab/ci/env_fedora37_makefiles_clang.sh @@ -0,0 +1 @@ +. .gitlab/ci/env_fedora37_common_clang.sh diff --git a/.gitlab/ci/env_fedora36_ninja.sh b/.gitlab/ci/env_fedora37_ninja.sh index 217ff30..217ff30 100644 --- a/.gitlab/ci/env_fedora36_ninja.sh +++ b/.gitlab/ci/env_fedora37_ninja.sh diff --git a/.gitlab/ci/env_fedora37_ninja_clang.sh b/.gitlab/ci/env_fedora37_ninja_clang.sh new file mode 100644 index 0000000..9ff1d84 --- /dev/null +++ b/.gitlab/ci/env_fedora37_ninja_clang.sh @@ -0,0 +1 @@ +. .gitlab/ci/env_fedora37_common_clang.sh diff --git a/.gitlab/ci/env_fedora36_makefiles.sh b/.gitlab/ci/env_fedora37_ninja_multi.sh index 217ff30..217ff30 100644 --- a/.gitlab/ci/env_fedora36_makefiles.sh +++ b/.gitlab/ci/env_fedora37_ninja_multi.sh diff --git a/.gitlab/ci/env_fedora37_tidy.sh b/.gitlab/ci/env_fedora37_tidy.sh new file mode 100644 index 0000000..f9f08a3 --- /dev/null +++ b/.gitlab/ci/env_fedora37_tidy.sh @@ -0,0 +1,7 @@ +cmake \ + -S Utilities/ClangTidyModule \ + -B Utilities/ClangTidyModule/build \ + -DCMAKE_BUILD_TYPE=Release \ + -DRUN_TESTS=ON +cmake --build Utilities/ClangTidyModule/build +ctest --test-dir Utilities/ClangTidyModule/build --output-on-failure diff --git a/.gitlab/ci/env_macos_arm64_ninja.sh b/.gitlab/ci/env_macos_arm64_ninja.sh new file mode 100644 index 0000000..f8d459b --- /dev/null +++ b/.gitlab/ci/env_macos_arm64_ninja.sh @@ -0,0 +1 @@ +. .gitlab/ci/openmp-env.sh diff --git a/.gitlab/ci/env_macos_x86_64_makefiles.sh b/.gitlab/ci/env_macos_x86_64_makefiles.sh index 217ff30..7496372 100644 --- a/.gitlab/ci/env_macos_x86_64_makefiles.sh +++ b/.gitlab/ci/env_macos_x86_64_makefiles.sh @@ -1,3 +1,4 @@ +. .gitlab/ci/openmp-env.sh if test "$CMAKE_CI_NIGHTLY" = "true"; then source .gitlab/ci/ispc-env.sh fi diff --git a/.gitlab/ci/env_macos_x86_64_ninja.sh b/.gitlab/ci/env_macos_x86_64_ninja.sh index 217ff30..7496372 100644 --- a/.gitlab/ci/env_macos_x86_64_ninja.sh +++ b/.gitlab/ci/env_macos_x86_64_ninja.sh @@ -1,3 +1,4 @@ +. .gitlab/ci/openmp-env.sh if test "$CMAKE_CI_NIGHTLY" = "true"; then source .gitlab/ci/ispc-env.sh fi diff --git a/.gitlab/ci/env_mingw_osdn_io_mingw_makefiles.ps1 b/.gitlab/ci/env_mingw_osdn_io_mingw_makefiles.ps1 new file mode 100755 index 0000000..e2d573e --- /dev/null +++ b/.gitlab/ci/env_mingw_osdn_io_mingw_makefiles.ps1 @@ -0,0 +1,3 @@ +$pwdpath = $pwd.Path +& "$pwsh" -File ".gitlab/ci/mingw.ps1" +Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\mingw\bin;$env:PATH" diff --git a/.gitlab/ci/env_mingw_osdn_io_msys_makefiles.ps1 b/.gitlab/ci/env_mingw_osdn_io_msys_makefiles.ps1 new file mode 100755 index 0000000..6eccb72 --- /dev/null +++ b/.gitlab/ci/env_mingw_osdn_io_msys_makefiles.ps1 @@ -0,0 +1,5 @@ +$pwdpath = $pwd.Path +& "$pwsh" -File ".gitlab/ci/mingw.ps1" +Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\mingw\msys\1.0\bin;$pwdpath\.gitlab\mingw\bin;$env:PATH" +$env:MSYSTEM = 'MINGW32' +$env:MAKE_MODE = 'unix' diff --git a/.gitlab/ci/mingw.ps1 b/.gitlab/ci/mingw.ps1 new file mode 100755 index 0000000..a1b5b11 --- /dev/null +++ b/.gitlab/ci/mingw.ps1 @@ -0,0 +1,25 @@ +$erroractionpreference = "stop" + +if ("$env:CMAKE_CONFIGURATION".Contains("mingw_osdn_io")) { + $filename = "mingw.osdn.io-2022-10-03" + $sha256sum = "4DCB8C351D8D855F7D3DFC2863A235042BF3DB6E69EA0BAE51FF9378189345CD" +} else { + throw ('unknown CMAKE_CONFIGURATION: ' + "$env:CMAKE_CONFIGURATION") +} +$tarball = "$filename.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 +} + +Add-Type -AssemblyName System.IO.Compression.FileSystem +[System.IO.Compression.ZipFile]::ExtractToDirectory("$outdir\$tarball", "$outdir") +Move-Item -Path "$outdir\$filename" -Destination "$outdir\mingw" +Remove-Item "$outdir\$tarball" + +"$outdir/mingw /mingw" -replace '\\', '/' | Out-File -FilePath "$outdir\mingw\msys\1.0\etc\fstab" -Encoding ASCII diff --git a/.gitlab/ci/openmp-env.sh b/.gitlab/ci/openmp-env.sh new file mode 100644 index 0000000..82dac5b --- /dev/null +++ b/.gitlab/ci/openmp-env.sh @@ -0,0 +1,3 @@ +.gitlab/ci/openmp.sh +export CMAKE_PREFIX_PATH=$PWD/.gitlab/openmp${CMAKE_PREFIX_PATH:+:$CMAKE_PREFIX_PATH} +export DYLD_LIBRARY_PATH=$PWD/.gitlab/openmp/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH} diff --git a/.gitlab/ci/openmp.sh b/.gitlab/ci/openmp.sh new file mode 100755 index 0000000..f411338 --- /dev/null +++ b/.gitlab/ci/openmp.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +set -e + +baseurl="https://cmake.org/files/dependencies/openmp" + +case "$(uname -s)-$(uname -m)" in + Darwin-*) + shatool="shasum -a 256" + sha256sum="6eef660db7a085a04f87e4aac79da9f37d26ff0fb17c8781d3a21bd5244997e9" + filename="openmp-12.0.1-darwin20-Release" + # tarball contains usr/local/ + strip_components=--strip-components=2 + ;; + *) + echo "Unrecognized platform $(uname -s)-$(uname -m)" + exit 1 + ;; +esac +readonly shatool +readonly sha256sum + +readonly tarball="$filename.tar.gz" + +cd .gitlab +mkdir -p openmp + +echo "$sha256sum $tarball" > openmp.sha256sum +curl -OL "$baseurl/$tarball" +$shatool --check openmp.sha256sum +tar -C openmp $strip_components -xzf $tarball +rm $tarball openmp.sha256sum diff --git a/.gitlab/ci/python-env.ps1 b/.gitlab/ci/python-env.ps1 new file mode 100755 index 0000000..4e897d8 --- /dev/null +++ b/.gitlab/ci/python-env.ps1 @@ -0,0 +1,4 @@ +$pwdpath = $pwd.Path +cmake -P .gitlab/ci/download_python3.cmake +Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\python3;$env:PATH" +python --version diff --git a/.gitlab/ci/qt-env.ps1 b/.gitlab/ci/qt-env.ps1 new file mode 100755 index 0000000..7eff55f --- /dev/null +++ b/.gitlab/ci/qt-env.ps1 @@ -0,0 +1,10 @@ +if ("$env:PROCESSOR_ARCHITECTURE" -eq "AMD64") { + $pwdpath = $pwd.Path + cmake -P .gitlab/ci/download_qt.cmake + Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\qt\bin;$env:PATH" + qmake -v +} elseif ("$env:PROCESSOR_ARCHITECTURE" -eq "ARM64") { + # Qt host tools are not yet available natively on windows-arm64. +} else { + throw ('unknown PROCESSOR_ARCHITECTURE: ' + "$env:PROCESSOR_ARCHITECTURE") +} diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index 84950d2..8fc6ae1 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -5,7 +5,7 @@ ### Release .linux_prep_source: - image: "fedora:36" + image: "fedora:37" variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" @@ -68,8 +68,8 @@ ### Fedora -.fedora36: - image: "kitware/cmake:ci-fedora36-x86_64-2022-10-04" +.fedora37: + image: "kitware/cmake:ci-fedora37-x86_64-2022-11-16" variables: GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci/long file name for testing purposes" @@ -77,37 +77,37 @@ #### Lint builds -.fedora36_tidy: - extends: .fedora36 +.fedora37_tidy: + extends: .fedora37 variables: - CMAKE_CONFIGURATION: fedora36_tidy + CMAKE_CONFIGURATION: fedora37_tidy CTEST_NO_WARNINGS_ALLOWED: 1 CMAKE_CI_NO_INSTALL: 1 -.fedora36_clang_analyzer: - extends: .fedora36 +.fedora37_clang_analyzer: + extends: .fedora37 variables: - CMAKE_CONFIGURATION: fedora36_clang_analyzer + CMAKE_CONFIGURATION: fedora37_clang_analyzer CMAKE_CI_BUILD_TYPE: Debug CTEST_NO_WARNINGS_ALLOWED: 1 CMAKE_CI_NO_INSTALL: 1 -.fedora36_sphinx: - extends: .fedora36 +.fedora37_sphinx: + extends: .fedora37 variables: - CMAKE_CONFIGURATION: fedora36_sphinx + CMAKE_CONFIGURATION: fedora37_sphinx CTEST_NO_WARNINGS_ALLOWED: 1 CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx" CMAKE_CI_NO_INSTALL: 1 -.fedora36_sphinx_package: - extends: .fedora36 +.fedora37_sphinx_package: + extends: .fedora37 variables: - CMAKE_CONFIGURATION: fedora36_sphinx_package + CMAKE_CONFIGURATION: fedora37_sphinx_package CTEST_SOURCE_SUBDIRECTORY: "Utilities/Sphinx" #### Build and test @@ -153,35 +153,35 @@ CMAKE_CI_BUILD_TYPE: Release CTEST_NO_WARNINGS_ALLOWED: 1 -.fedora36_extdeps: - extends: .fedora36 +.fedora37_extdeps: + extends: .fedora37 variables: - CMAKE_CONFIGURATION: fedora36_extdeps + CMAKE_CONFIGURATION: fedora37_extdeps CMAKE_CI_BUILD_TYPE: Release CTEST_NO_WARNINGS_ALLOWED: 1 -.fedora36_ninja: - extends: .fedora36 +.fedora37_ninja: + extends: .fedora37 variables: - CMAKE_CONFIGURATION: fedora36_ninja + CMAKE_CONFIGURATION: fedora37_ninja CMAKE_CI_BUILD_TYPE: Release CTEST_NO_WARNINGS_ALLOWED: 1 -.fedora36_ninja_multi: - extends: .fedora36 +.fedora37_ninja_multi: + extends: .fedora37 variables: - CMAKE_CONFIGURATION: fedora36_ninja_multi + CMAKE_CONFIGURATION: fedora37_ninja_multi CTEST_NO_WARNINGS_ALLOWED: 1 CMAKE_GENERATOR: "Ninja Multi-Config" -.fedora36_makefiles: - extends: .fedora36 +.fedora37_makefiles: + extends: .fedora37 variables: - CMAKE_CONFIGURATION: fedora36_makefiles + CMAKE_CONFIGURATION: fedora37_makefiles CTEST_NO_WARNINGS_ALLOWED: 1 CMAKE_GENERATOR: "Unix Makefiles" @@ -200,6 +200,19 @@ variables: CMAKE_CONFIGURATION: debian10_ninja_clang +.fedora37_makefiles_clang: + extends: .fedora37 + + variables: + CMAKE_CONFIGURATION: fedora37_makefiles_clang + CMAKE_GENERATOR: "Unix Makefiles" + +.fedora37_ninja_clang: + extends: .fedora37 + + variables: + CMAKE_CONFIGURATION: fedora37_ninja_clang + ### Sanitizers .fedora_memcheck: @@ -213,13 +226,13 @@ CTEST_MEMORYCHECK_TYPE: AddressSanitizer CTEST_MEMORYCHECK_SANITIZER_OPTIONS: "" -.fedora36_asan: +.fedora37_asan: extends: - - .fedora36 + - .fedora37 - .fedora_asan_addon variables: - CMAKE_CONFIGURATION: fedora36_asan + CMAKE_CONFIGURATION: fedora37_asan ### Intel Compiler @@ -437,7 +450,7 @@ .cmake_codespell_linux: stage: build - extends: .fedora36 + extends: .fedora37 script: - codespell interruptible: true @@ -580,7 +593,7 @@ .cmake_org_help: stage: build extends: - - .fedora36 + - .fedora37 - .linux_builder_tags - .cmake_org_help_artifacts script: diff --git a/.gitlab/os-macos.yml b/.gitlab/os-macos.yml index 82bcf01..4b71a1b 100644 --- a/.gitlab/os-macos.yml +++ b/.gitlab/os-macos.yml @@ -143,7 +143,7 @@ - ninja --version # Download Qt - cmake -P .gitlab/ci/download_qt.cmake - - export CMAKE_PREFIX_PATH=$PWD/.gitlab/qt + - export CMAKE_PREFIX_PATH=$PWD/.gitlab/qt${CMAKE_PREFIX_PATH:+:$CMAKE_PREFIX_PATH} .cmake_build_macos: stage: build diff --git a/.gitlab/os-windows.yml b/.gitlab/os-windows.yml index eeed640..64b595e 100644 --- a/.gitlab/os-windows.yml +++ b/.gitlab/os-windows.yml @@ -49,6 +49,12 @@ VCVARSPLATFORM: "x64_arm64" VCVARSVERSION: "14.34.31933" +.windows_arm64_vcvarsall_vs2022: + variables: + VCVARSALL: "${VS170COMNTOOLS}\\..\\..\\VC\\Auxiliary\\Build\\vcvarsall.bat" + VCVARSPLATFORM: "arm64" + VCVARSVERSION: "14.34.31933" + .windows_vs2022_x64_ninja: extends: - .windows_build_ninja @@ -57,6 +63,14 @@ variables: CMAKE_CONFIGURATION: windows_vs2022_x64_ninja +.windows_arm64_vs2022_ninja: + extends: + - .windows_build_ninja + - .windows_arm64_vcvarsall_vs2022 + + variables: + CMAKE_CONFIGURATION: windows_arm64_vs2022_ninja + .windows_package: extends: - .windows_build_ninja @@ -224,6 +238,39 @@ variables: CMAKE_CONFIGURATION: windows_openwatcom1.9 +.windows_arm64_vs2022: + extends: .windows + + variables: + CMAKE_CONFIGURATION: windows_arm64_vs2022 + CMAKE_GENERATOR: "Visual Studio 17 2022" + CMAKE_GENERATOR_PLATFORM: "ARM64" + CMAKE_GENERATOR_TOOLSET: "v143,version=14.34.31933" + CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true" + +.mingw_osdn_io: + extends: .windows + + variables: + # Place MinGW environment in a path without spaces. + GIT_CLONE_PATH: "$CI_BUILDS_DIR\\cmake-ci-ext\\$CI_CONCURRENT_ID" + CMAKE_CI_BUILD_TYPE: Debug + CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true" + +.mingw_osdn_io_mingw_makefiles: + extends: .mingw_osdn_io + + variables: + CMAKE_CONFIGURATION: mingw_osdn_io_mingw_makefiles + CMAKE_GENERATOR: "MinGW Makefiles" + +.mingw_osdn_io_msys_makefiles: + extends: .mingw_osdn_io + + variables: + CMAKE_CONFIGURATION: mingw_osdn_io_msys_makefiles + CMAKE_GENERATOR: "MSYS Makefiles" + ## Tags .windows_tags_nonconcurrent_vs2022: @@ -269,6 +316,24 @@ - shell - concurrent +.windows_arm64_tags_nonconcurrent_vs2022: + tags: + - cmake # Since this is a bare runner, pin to a project. + - windows-arm64 + - shell + - vs2022 + - msvc-19.34 + - nonconcurrent + +.windows_arm64_tags_concurrent_vs2022: + tags: + - cmake # Since this is a bare runner, pin to a project. + - windows-arm64 + - shell + - vs2022 + - msvc-19.34 + - concurrent + ## Windows-specific scripts .before_script_windows: &before_script_windows @@ -281,11 +346,8 @@ - . .gitlab/ci/ninja-env.ps1 - (& "$env:WIX\bin\light.exe" -help) | Select -First 1 - cmake --version - - cmake -P .gitlab/ci/download_qt.cmake - - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\qt\bin;$env:PATH" - - cmake -P .gitlab/ci/download_python3.cmake - - Set-Item -Force -Path "env:PATH" -Value "$pwdpath\.gitlab\python3;$env:PATH" - - python --version + - . .gitlab/ci/qt-env.ps1 + - . .gitlab/ci/python-env.ps1 .cmake_build_windows: stage: build diff --git a/.gitlab/upload.yml b/.gitlab/upload.yml index 38d40a9..27a6ab7 100644 --- a/.gitlab/upload.yml +++ b/.gitlab/upload.yml @@ -1,7 +1,7 @@ # Steps for uploading artifacts .rsync_upload_package: - image: "fedora:36" + image: "fedora:37" stage: upload tags: - cmake @@ -21,7 +21,7 @@ .rsync_upload_help: stage: upload - image: "fedora:36" + image: "fedora:37" tags: - cmake - docker |