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
Change-Id: I1b7ff29b1870d0445034590d01caa503c9e3ae0f
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit e95025936a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Morteza Jamshidi
2024-09-23 10:28:40 +02:00
committed by Michal Klocek
parent e89a978ef6
commit 24053c7dce
3 changed files with 51 additions and 0 deletions

View File

@@ -132,6 +132,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_24H2-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"