diff options
author | Brad King <brad.king@kitware.com> | 2022-02-02 20:53:23 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-02-04 13:24:53 (GMT) |
commit | c1f4bd792b28af10ded274e569b4b75cc722f0b7 (patch) | |
tree | 31eeee3197f8afe90e32708aa61b981662a06430 /.gitlab | |
parent | f84dcbd496ad6abb1491b621142e2c222f23c11c (diff) | |
download | CMake-c1f4bd792b28af10ded274e569b4b75cc722f0b7.zip CMake-c1f4bd792b28af10ded274e569b4b75cc722f0b7.tar.gz CMake-c1f4bd792b28af10ded274e569b4b75cc722f0b7.tar.bz2 |
ci: Add LLVM/Clang 13.0 nightly CI jobs on Windows
Add jobs covering the `clang-cl` front-end with Ninja and NMake.
Add a job covering the `clang++` front-end with Ninja.
Diffstat (limited to '.gitlab')
-rwxr-xr-x | .gitlab/ci/clang.ps1 | 37 | ||||
-rw-r--r-- | .gitlab/ci/configure_windows_clang_common.cmake | 2 | ||||
-rw-r--r-- | .gitlab/ci/configure_windows_clang_ninja.cmake | 1 | ||||
-rw-r--r-- | .gitlab/ci/configure_windows_clang_nmake.cmake | 1 | ||||
-rw-r--r-- | .gitlab/ci/env_windows_clang_common.cmake | 7 | ||||
-rw-r--r-- | .gitlab/ci/env_windows_clang_ninja.cmake | 1 | ||||
-rw-r--r-- | .gitlab/ci/env_windows_clang_nmake.cmake | 1 | ||||
-rw-r--r-- | .gitlab/os-windows.yml | 38 |
8 files changed, 88 insertions, 0 deletions
diff --git a/.gitlab/ci/clang.ps1 b/.gitlab/ci/clang.ps1 new file mode 100755 index 0000000..25d64ba --- /dev/null +++ b/.gitlab/ci/clang.ps1 @@ -0,0 +1,37 @@ +$erroractionpreference = "stop" + +if ("$env:CMAKE_CI_BUILD_NAME".Contains("clang13.0")) { + # LLVM/Clang 13.0 + # https://github.com/llvm/llvm-project/releases/tag/llvmorg-13.0.0 + $filename = "llvm-13.0.0-win-x86_64-1" + $sha256sum = "F1B7CE360DACBC9776D7F84BE714766D60CF3D47492AFE34C45D574D1C597264" +} else { + throw ('unknown CMAKE_CI_BUILD_NAME: ' + "$env:CMAKE_CI_BUILD_NAME") +} +$tarball = "$filename.zip" + +$outdir = $pwd.Path +$outdir = "$outdir\.gitlab" +$ProgressPreference = 'SilentlyContinue' +# This URL is only visible inside of Kitware's network. See above filename table. +Invoke-WebRequest -Uri "https://cmake.org/files/dependencies/internal/$tarball" -OutFile "$outdir\$tarball" +$hash = Get-FileHash "$outdir\$tarball" -Algorithm SHA256 +if ($hash.Hash -ne $sha256sum) { + exit 1 +} + +Add-Type -AssemblyName System.IO.Compression.FileSystem +[System.IO.Compression.ZipFile]::ExtractToDirectory("$outdir\$tarball", "$outdir") +Move-Item -Path "$outdir\$filename" -Destination "$outdir\llvm" + +$bin = "$outdir\llvm\bin" +$null = New-Item -ItemType HardLink -Path "$bin\clang++.exe" -Target "$bin\clang.exe" +$null = New-Item -ItemType HardLink -Path "$bin\clang-cl.exe" -Target "$bin\clang.exe" +$null = New-Item -ItemType HardLink -Path "$bin\clang-cpp.exe" -Target "$bin\clang.exe" +$null = New-Item -ItemType HardLink -Path "$bin\ld.lld.exe" -Target "$bin\lld.exe" +$null = New-Item -ItemType HardLink -Path "$bin\ld64.lld.exe" -Target "$bin\lld.exe" +$null = New-Item -ItemType HardLink -Path "$bin\lld-link.exe" -Target "$bin\lld.exe" +$null = New-Item -ItemType HardLink -Path "$bin\llvm-lib.exe" -Target "$bin\llvm-ar.exe" +$null = New-Item -ItemType HardLink -Path "$bin\llvm-ranlib.exe" -Target "$bin\llvm-ar.exe" +$null = New-Item -ItemType HardLink -Path "$bin\llvm-objcopy.exe" -Target "$bin\llvm-strip.exe" +Clear-Variable -Name bin diff --git a/.gitlab/ci/configure_windows_clang_common.cmake b/.gitlab/ci/configure_windows_clang_common.cmake new file mode 100644 index 0000000..6d66a05 --- /dev/null +++ b/.gitlab/ci/configure_windows_clang_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_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/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/os-windows.yml b/.gitlab/os-windows.yml index 2bce8c8..d01c828 100644 --- a/.gitlab/os-windows.yml +++ b/.gitlab/os-windows.yml @@ -87,6 +87,14 @@ variables: CMAKE_CONFIGURATION: windows_borland5.8 +.windows_ninja: + extends: .windows + + variables: + CMAKE_GENERATOR: "Ninja" + CMAKE_CI_BUILD_TYPE: Release + CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true" + .windows_nmake: extends: .windows @@ -119,6 +127,22 @@ variables: CMAKE_CONFIGURATION: windows_vs2022_x64_jom +.windows_clang_ninja: + extends: + - .windows_ninja + - .windows_vcvarsall_vs2022_x64 + + variables: + CMAKE_CONFIGURATION: windows_clang_ninja + +.windows_clang_nmake: + extends: + - .windows_nmake + - .windows_vcvarsall_vs2022_x64 + + variables: + CMAKE_CONFIGURATION: windows_clang_nmake + .windows_msvc_v71_nmake: extends: .windows_nmake @@ -262,6 +286,20 @@ 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_test_external.cmake + + interruptible: true + .cmake_test_windows_msvc: stage: test-ext |