Files
qt5/coin/provisioning/common/windows/ninja.ps1
Tero Heikkinen 3ac3b7d9f3 Provisioning: Add Windows 11 on ARM as non-blocking in CI
Visual Studio 2022 is the first msvc having natively support for
building and debugging ARM64 apps. [CI Platforms]

Provisioning needed to take new Get-CpuArchitecture
helpers.ps1 function into use in several installations.

Requirements for other branches
- Get-CpuArchitecture helpers.ps1 function
- Skip qtwebengine with Windows 11 ARM (QTBUG-124632)

List of excluded installations in Windows on ARM:

- Could be added later
  - MinGW - QTQAINFRA-6079
  - DirectX SDK for RTA
  - libclang
  - mcuexpresso
  - fbx for msvc2022
  - Ruby
  - For python
    - conan
    - emsdk

- Not supported yet
  - FFmpeg
  - Msys2 (for FFmpeg QTBUG-124399)
  - MySQL
  - PostgreSQL
  - Java JDK
  - Strawberry Perl

Task-number: QTQAINFRA-6109
Task-number: QTQAINFRA-5855
Pick-to: 6.7
Change-Id: I4130e78add53f8a6e05eb41b7617b3f9ca802178
Reviewed-by: Simo Fält <simo.falt@qt.io>
2024-05-14 19:47:28 +03:00

64 lines
2.3 KiB
PowerShell

. "$PSScriptRoot\helpers.ps1"
$cpu_arch = Get-CpuArchitecture
switch ($cpu_arch) {
arm64 {
$arch = "arm64"
$version = "1.12.0"
$longPathFixed = $true # fixed https://github.com/ninja-build/ninja/pull/2225 in 1.12.0
$zip = Get-DownloadLocation "ninja-$version-win-$arch.zip"
$internalUrl = "https://ci-files01-hki.ci.qt.io/input/ninja/v$version/ninja-win$arch.zip"
$externalUrl = "https://github.com/ninja-build/ninja/releases/download/v$version/ninja-win$arch.zip"
$sha1 = "51bf1bac149ae1e3d1572fa9fa87d6431dbddc8b"
Break
}
x64 {
$arch = "amd64"
$version = "1.10.2"
$longPathFixed = $false
$zip = Get-DownloadLocation "ninja-$version-win-x86.zip"
# TODO: Fix this QTQAINFRA-6296
$internalUrl = "http://master.qt.io/development_releases/prebuilt/ninja/v$version/ninja-win-x86.zip"
$externalUrl = "\\ci-files01-hki.ci.qt.io\provisioning\ninja\ninja-$version-win-really-x86.zip"
$sha1 = "1a22ee9269df8ed69c4600d7ee4ccd8841bb99ca"
Break
}
default {
throw "Unknown architecture $cpu_arch"
}
}
Download $internalUrl $externalUrl $zip
Verify-Checksum $zip $sha1
Extract-7Zip $zip C:\Utils\Ninja
Remove "$zip"
Add-Path "C:\Utils\Ninja"
Write-Output "Ninja ($arch) = $version" >> ~/versions.txt
if ( -Not $longPathFixed ) {
$manifest = @"
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<application>
<windowsSettings>
<activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
</assembly>
"@
$vs2019 = [System.IO.File]::Exists("C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat")
if($vs2019) {
Invoke-MtCommand "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64 $manifest "C:\Utils\Ninja\ninja.exe"
} else {
Invoke-MtCommand "C:\Program Files (x86)\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64 $manifest "C:\Utils\Ninja\ninja.exe"
}
}