gitlab-ci: Add windows-arm64 native jobs for Ninja and VS

Add Windows ARM64 native CI jobs to build and test with Ninja,
and to test with VS.

Issue: #23624
This commit is contained in:
Brad King
2022-11-11 12:03:23 -05:00
parent 61ebd7d083
commit 09c1b1db07
5 changed files with 103 additions and 5 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

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

View File

@@ -1,4 +1,10 @@
$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
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