Add webview2 plugin to windows 10 node in the CI

Add a script to download windows app sdk and webview2 to be used for CI
This script downloads NUGET, then tries to download Windows App SDK,
WebView2 and CppWinRT libraries and sets appropriate environment paths
to be used later by webview2 plugin.

Task-number: QTBUG-128447
Task-number: QTBUG-75747
Pick-to: 6.10
Change-Id: I1b7ff29b1870d0445034590d01caa503c9e3ae0f
Reviewed-by: Toni Saario <toni.saario@qt.io>
This commit is contained in:
Morteza Jamshidi
2024-09-23 10:28:40 +02:00
committed by Allan Sandfeld Jensen
parent 3d9bbd5324
commit e95025936a
3 changed files with 51 additions and 0 deletions

View File

@@ -129,6 +129,7 @@ Configurations:
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_clangcpp=OFF -DINPUT_headersclean=ON',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
'WEBVIEW2_SDK_ROOT={{.Env.WEBVIEW2_SDK_ROOT_x64}}',
]
-
Id: 'windows-11_23H2-msvc2022'

View File

@@ -0,0 +1,49 @@
. "$PSScriptRoot\helpers.ps1"
# This script installs Windows App SDK
$nugetPackage = "nuget.exe"
$packageRoot = "C:\Utils\WindowsAppSdk\"
$cachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\windows\nuget\$nugetPackage"
$officialUrl = "https://dist.nuget.org/win-x86-commandline/v6.11.0/nuget.exe"
$sdkChecksumSha1 = "5443887cfb5283da5021388d146ebb5febdc82e9"
$package_path = "$packageRoot\\$nugetPackage"
New-Item -ItemType Directory -Path "$packageRoot"
Download $officialUrl $cachedUrl $package_path
Verify-Checksum $package_path $sdkChecksumSha1 sha1
Write-Host "Installing Nuget"
Run-Executable "$package_path" "install Microsoft.WindowsAppSDK -OutputDirectory $packageRoot"
if ([System.Environment]::Is64BitProcess) {
$cppWinRt_path = "C:\Program Files*\Windows Kits\*\bin\*\x64\cppwinrt.exe"
} else {
$cppWinRt_path = "C:\Program Files*\Windows Kits\*\bin\*\x86\cppwinrt.exe"
}
if (Resolve-Path -Path $cppWinRt_path) {
$cppWinRt_path = $(Resolve-Path -Path $cppWinRt_path).Path
}
else {
Run-Executable "$package_path" "install Microsoft.Windows.CppWinRT -OutputDirectory $packageRoot"
$cppWinRt_path = $(Resolve-Path -Path "$packageRoot\\Microsoft.Windows.CppWinRT.*\\bin\\cppwinrt.exe").Path
}
$winAppSDK_path = $(Resolve-Path -Path "$packageRoot\Microsoft.WindowsAppSDK.*").Path
$webview2_path = $(Resolve-Path -Path "$packageRoot\Microsoft.Web.WebView*").Path
Write-Output "CppWinRT Path = $cppWinRt_path"
Write-Output "WindowsAppSdk Path = $winAppSDK_path"
Write-Output "WebView2 Path = $webview2_path"
if ([System.Environment]::Is64BitProcess) {
Set-EnvironmentVariable "WIN_APP_SDK_ROOT_x64" "$winAppSDK_path"
Set-EnvironmentVariable "WEBVIEW2_SDK_ROOT_x64" "$webview2_path"
Set-EnvironmentVariable "CPP_WIN_RT_PATH_x64" "$cppWinRt_path"
} else {
Set-EnvironmentVariable "WIN_APP_SDK_ROOT_x86" "$winAppSDK_path"
Set-EnvironmentVariable "WEBVIEW2_SDK_ROOT_x86" "$webview2_path"
Set-EnvironmentVariable "CPP_WIN_RT_PATH_x86" "$cppWinRt_path"
}

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\windows\winappsdk.ps1"