Merge topic 'ci-windows-arm64'

09c1b1db07 gitlab-ci: Add windows-arm64 native jobs for Ninja and VS
61ebd7d083 ci: Download cmake on windows-arm64
93a5d89b42 ci: Teach cmake download script on Windows to branch on host architecture
1ccffcf0ea ci: Factor out helper to load python into environment on Windows
781303c0e2 ci: Factor out helper to load qt into environment on Windows
b0d16c7f74 Tests: Fix CTest.UpdateGIT under repo-local defaultBranch config

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !7905
This commit is contained in:
Brad King
2022-11-14 15:20:22 +00:00
committed by Kitware Robot
8 changed files with 122 additions and 9 deletions

View File

@@ -880,7 +880,7 @@ u:macos10.10-package:
needs:
- b:macos10.10-package
# Windows builds
# Windows x86_64 jobs
b:windows-vs2022-x64-ninja:
extends:
@@ -1116,6 +1116,48 @@ t:windows-openwatcom1.9:
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
# Windows arm64 jobs
b:windows-arm64-vs2022-ninja:
extends:
- .windows_arm64_vs2022_ninja
- .cmake_build_windows
- .cmake_build_artifacts
- .windows_arm64_tags_nonconcurrent_vs2022
- .run_manually
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:windows-arm64-vs2022-ninja:
extends:
- .windows_arm64_vs2022_ninja
- .cmake_test_windows
- .windows_arm64_tags_nonconcurrent_vs2022
- .cmake_test_artifacts
- .run_dependent
dependencies:
- b:windows-arm64-vs2022-ninja
needs:
- b:windows-arm64-vs2022-ninja
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
t:windows-arm64-vs2022:
extends:
- .windows_arm64_vs2022
- .cmake_test_windows_external
- .windows_arm64_tags_concurrent_vs2022
- .cmake_junit_artifacts
- .run_dependent
dependencies:
- t:windows-arm64-vs2022-ninja
needs:
- t:windows-arm64-vs2022-ninja
variables:
CMAKE_CI_JOB_NIGHTLY: "true"
# Windows package jobs
b:windows-x86_64-package:
extends:
- .windows_x86_64_package

View File

@@ -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

View File

@@ -0,0 +1 @@
include("${CMAKE_CURRENT_LIST_DIR}/configure_windows_vs_common.cmake")

View File

@@ -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")

4
.gitlab/ci/python-env.ps1 Executable file
View File

@@ -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

10
.gitlab/ci/qt-env.ps1 Executable file
View File

@@ -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")
}

View File

@@ -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,16 @@
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
@@ -292,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
@@ -304,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

View File

@@ -34,7 +34,7 @@ endif()
# Adapt to the system default branch name.
execute_process(
COMMAND ${GIT} config --get init.defaultBranch
COMMAND ${GIT} --git-dir= config --get init.defaultBranch
RESULT_VARIABLE defaultBranchFailed
OUTPUT_VARIABLE defaultBranch
ERROR_VARIABLE defaultBranchError