ci: Add PellesC 13.01 nightly CI job

Issue: #21536
This commit is contained in:
Brad King
2026-04-07 09:43:24 -04:00
parent b19ebdc45f
commit 3f616f479a
9 changed files with 87 additions and 0 deletions
+12
View File
@@ -1546,6 +1546,18 @@ t:windows-orangec7.0.7:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:windows-pellesc13.01:
extends:
- .windows_pellesc13.01
- .cmake_test_windows_external
- .windows_x86_64_tags_concurrent
- .cmake_junit_artifacts
- .rules
needs:
- t:windows-vs2026-x64-ninja
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
# Windows arm64 jobs
b:windows-arm64-vs2026-ninja:
+1
View File
@@ -19,6 +19,7 @@
/openmp
/open-watcom*
/orangec
/pellesc
/python*
/qt*
/sccache*
@@ -0,0 +1 @@
include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_pellesc_common.cmake")
@@ -0,0 +1,6 @@
set(CMake_TEST_CXX OFF CACHE BOOL "")
set(CMake_TEST_Java OFF CACHE BOOL "")
set(configure_no_sccache 1)
include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake")
+6
View File
@@ -0,0 +1,6 @@
. .gitlab/ci/ninja-env.ps1
. .gitlab/ci/pellesc-env.ps1
# FIXME(#21536): Avoid requiring the end user to enable
# Pelles C's Microsoft extensions to use Windows APIs.
$env:CFLAGS = "-Ze"
+6
View File
@@ -0,0 +1,6 @@
& "$pwsh" -File ".gitlab/ci/pellesc.ps1"
Invoke-Expression -Command .gitlab/ci/pellesc-vars.ps1
$env:CC = "pocc"
$env:CXX = "pocc-does-not-support-c++"
pocc | Select -First 1
+7
View File
@@ -0,0 +1,7 @@
$erroractionpreference = "stop"
$all_env = cmd /c "`".gitlab\pellesc\bin\povars64.bat`" >NUL & powershell -Command `"Get-ChildItem env: | Select-Object -Property Key,Value | ConvertTo-Json`"" | ConvertFrom-Json
foreach ($envvar in $all_env) {
[Environment]::SetEnvironmentVariable($envvar.Key, $envvar.Value)
}
+33
View File
@@ -0,0 +1,33 @@
$erroractionpreference = "stop"
if ("$env:CMAKE_CONFIGURATION".Contains("pellesc13.01")) {
# PellesC 13.01
# https://www.pellesc.se/1300/setup.exe
$filename = "pellesc-13.01-1"
$sha256sum = "E48AF208D1A46F47490011979538C1DBC427B36D47554A76C3FF83284E8F83AE"
} else {
throw ('unknown CMAKE_CONFIGURATION: ' + "$env:CMAKE_CONFIGURATION")
}
$archive = "$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/$archive" -OutFile "$outdir\$archive"
$hash = Get-FileHash "$outdir\$archive" -Algorithm SHA256
if ($hash.Hash -ne $sha256sum) {
exit 1
}
Add-Type -AssemblyName System.IO.Compression.FileSystem
[System.IO.Compression.ZipFile]::ExtractToDirectory("$outdir\$archive", "$outdir")
Move-Item -Path "$outdir\$filename" -Destination "$outdir\pellesc"
Remove-Item "$outdir\$archive"
$scripts = "povars32.bat", "povars64.bat"
foreach ($script in $scripts) {
$bat = Get-Content -Path "$outdir\pellesc\bin\$script.in" -Raw
$bat = $bat -Replace "@PellesCDir@","$outdir\pellesc"
$bat | Set-Content -Path "$outdir\pellesc\bin\$script"
}
+15
View File
@@ -325,6 +325,21 @@
variables:
CMAKE_CONFIGURATION: windows_orangec7.0.7
.windows_pellesc:
extends: .windows
variables:
CMAKE_GENERATOR: "Ninja"
CMAKE_CI_BUILD_TYPE: Release
CMAKE_CI_JOB_NIGHTLY_IGNORE_DEPS: "true"
CTEST_LABELS: "PellesC"
.windows_pellesc13.01:
extends: .windows_pellesc
variables:
CMAKE_CONFIGURATION: windows_pellesc13.01
.windows_arm64_vs2026:
extends: .windows