diff options
Diffstat (limited to '.gitlab/ci')
22 files changed, 159 insertions, 11 deletions
diff --git a/.gitlab/ci/borland.ps1 b/.gitlab/ci/borland.ps1 new file mode 100755 index 0000000000..146a0471f3 --- /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/configure_windows_borland5.5.cmake b/.gitlab/ci/configure_windows_borland5.5.cmake new file mode 100644 index 0000000000..82c4178aea --- /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 0000000000..82c4178aea --- /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 0000000000..6d66a05024 --- /dev/null +++ b/.gitlab/ci/configure_windows_borland_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_common.cmake b/.gitlab/ci/configure_windows_msvc_common.cmake new file mode 100644 index 0000000000..6d66a05024 --- /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 0000000000..166690abe0 --- /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 0000000000..f29c3f486a --- /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 0000000000..6d66a05024 --- /dev/null +++ b/.gitlab/ci/configure_windows_openwatcom_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_vs2019_x64.cmake b/.gitlab/ci/configure_windows_vs2019_x64.cmake new file mode 100644 index 0000000000..c7d41ea1d4 --- /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 0000000000..c078f9049e --- /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 f6ece57c88..c7d41ea1d4 100644 --- a/.gitlab/ci/configure_windows_vs2022_x64.cmake +++ b/.gitlab/ci/configure_windows_vs2022_x64.cmake @@ -1,3 +1 @@ -set(CMake_TEST_WIX_NO_VERIFY "ON" 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 0000000000..166690abe0 --- /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 e1ae81e3d3..c078f9049e 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 0000000000..166690abe0 --- /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 0000000000..a0a474242e --- /dev/null +++ b/.gitlab/ci/configure_windows_vs_common.cmake @@ -0,0 +1,8 @@ +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 "") + +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 0000000000..ae73f8352c --- /dev/null +++ b/.gitlab/ci/configure_windows_vs_common_ninja.cmake @@ -0,0 +1,12 @@ +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 "") + +include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_common.cmake") diff --git a/.gitlab/ci/jom.ps1 b/.gitlab/ci/jom.ps1 new file mode 100755 index 0000000000..6c28005f66 --- /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 0000000000..e8388a4796 --- /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 0000000000..071b07712c --- /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 4c5333ab73..47bb0561e5 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 0000000000..4f1012cc8f --- /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 57d338632b..f91b100840 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("=") |