Module: Mesa Branch: main Commit: 543e872d908792871e532608e5e4ab4246c12845 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=543e872d908792871e532608e5e4ab4246c12845
Author: Yonggang Luo <[email protected]> Date: Wed Dec 20 05:25:25 2023 +0800 ci/msvc: Split install vulkan sdk out of choco packaging are installed because python 3.12 need it Install of vulkan-sdk improved so that it's can be running in non-docker environment Now vulkan-sdk have separate script so that it can be updated without update MSVC THe choco installed packages is almost freeze to update, so split install of vulkan sdk out of it for avoid update it when update VULKAN_SDK_VERSION on local computer --params="/InstallDir:C:\python3" won't take effect, drop it for not misleading Signed-off-by: Yonggang Luo <[email protected]> Reviewed-by: Jesse Natalie <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26736> --- .gitlab-ci/windows/Dockerfile_build | 3 ++ .gitlab-ci/windows/Dockerfile_test | 3 ++ .gitlab-ci/windows/Dockerfile_vs | 4 +-- .gitlab-ci/windows/mesa_deps_choco.ps1 | 46 +++++++++-------------------- .gitlab-ci/windows/mesa_deps_vulkan_sdk.ps1 | 39 ++++++++++++++++++++++++ 5 files changed, 61 insertions(+), 34 deletions(-) diff --git a/.gitlab-ci/windows/Dockerfile_build b/.gitlab-ci/windows/Dockerfile_build index 3772c16514a..dec2c950fc6 100644 --- a/.gitlab-ci/windows/Dockerfile_build +++ b/.gitlab-ci/windows/Dockerfile_build @@ -3,6 +3,9 @@ ARG base_image FROM ${base_image} +COPY mesa_deps_vulkan_sdk.ps1 C:\ +RUN C:\mesa_deps_vulkan_sdk.ps1 + COPY mesa_deps_build.ps1 C:\ RUN C:\mesa_deps_build.ps1 diff --git a/.gitlab-ci/windows/Dockerfile_test b/.gitlab-ci/windows/Dockerfile_test index 106e493358f..31be63d4a93 100644 --- a/.gitlab-ci/windows/Dockerfile_test +++ b/.gitlab-ci/windows/Dockerfile_test @@ -3,5 +3,8 @@ ARG base_image FROM ${base_image} +COPY mesa_deps_vulkan_sdk.ps1 C:\ +RUN C:\mesa_deps_vulkan_sdk.ps1 + COPY mesa_deps_test.ps1 C:\ RUN C:\mesa_deps_test.ps1 diff --git a/.gitlab-ci/windows/Dockerfile_vs b/.gitlab-ci/windows/Dockerfile_vs index 95c45633151..5e1c9566500 100644 --- a/.gitlab-ci/windows/Dockerfile_vs +++ b/.gitlab-ci/windows/Dockerfile_vs @@ -14,12 +14,12 @@ RUN Write-Output $PSVersionTable $ErrorActionPreference COPY mesa_deps_vs2019.ps1 C:\ RUN C:\mesa_deps_vs2019.ps1 -COPY mesa_vs_init.ps1 C:\ -ENV VULKAN_SDK_VERSION='1.3.211.0' COPY mesa_deps_choco.ps1 C:\ RUN C:\mesa_deps_choco.ps1 +COPY mesa_vs_init.ps1 C:\ + # Example usage: # `base_image` should use windows image that can be run with `--isolation=process` option, # since the resulting container will want to be used that way be later containers in the build process. diff --git a/.gitlab-ci/windows/mesa_deps_choco.ps1 b/.gitlab-ci/windows/mesa_deps_choco.ps1 index 5255839f3d2..d2cbeb69608 100644 --- a/.gitlab-ci/windows/mesa_deps_choco.ps1 +++ b/.gitlab-ci/windows/mesa_deps_choco.ps1 @@ -1,6 +1,6 @@ # Download new TLS certs from Windows Update +Write-Host "Updating TLS certificate store at:" Get-Date -Write-Host "Updating TLS certificate store" Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "_tlscerts" | Out-Null $certdir = (New-Item -ItemType Directory -Name "_tlscerts") certutil -syncwithWU "$certdir" @@ -9,8 +9,8 @@ Foreach ($file in (Get-ChildItem -Path "$certdir\*" -Include "*.crt")) { } Remove-Item -Recurse -Path $certdir +Write-Host "Installing graphics tools (DirectX debug layer) at:" Get-Date -Write-Host "Installing graphics tools (DirectX debug layer)" Set-Service -Name wuauserv -StartupType Manual if (!$?) { Write-Host "Failed to enable Windows Update" @@ -31,17 +31,19 @@ if (!$graphics_tools_installed) { Exit 1 } +Write-Host "Installing Chocolatey at:" Get-Date -Write-Host "Installing Chocolatey" Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) Import-Module "$env:ProgramData\chocolatey\helpers\chocolateyProfile.psm1" +# Add Chocolatey's native install path Update-SessionEnvironment -Write-Host "Installing Chocolatey packages" +Write-Host "Installing Chocolatey packages at:" +Get-Date # Chocolatey tries to download winflexbison3 from github, which is not super reliable, and has no retry # loop of its own - so we give it a helping hand here For ($i = 0; $i -lt 5; $i++) { - choco install --no-progress -y python3 --params="/InstallDir:C:\python3" + choco install --no-progress -y python3 $python_install = $? choco install --allow-empty-checksums --no-progress -y cmake git git-lfs ninja pkgconfiglite winflexbison3 --installargs "ADD_CMAKE_TO_PATH=System" $other_install = $? @@ -56,40 +58,20 @@ if (!$choco_installed) { Exit 1 } -# Add Chocolatey's native install path +# Add Chocolatey's newly installed package path Update-SessionEnvironment -# Python and CMake add themselves to the system environment path, which doesn't get refreshed -# until we start a new shell -$env:PATH = "C:\python3;C:\python3\scripts;C:\Program Files\CMake\bin;$env:PATH" Start-Process -NoNewWindow -Wait git -ArgumentList 'config --global core.autocrlf false' +Write-Host "Upgrading pip at:" +Get-Date +python -m pip install --upgrade pip --progress-bar off +Write-Host "Installing python packages at:" Get-Date -Write-Host "Installing Meson, Mako and numpy" -pip3 install meson mako numpy --progress-bar off +pip3 install packaging meson mako numpy --progress-bar off if (!$?) { Write-Host "Failed to install dependencies from pip" Exit 1 } - +Write-Host "Installing python packages finished at:" Get-Date -Write-Host "Downloading Vulkan-SDK" -Invoke-WebRequest -Uri "https://sdk.lunarg.com/sdk/download/$env:VULKAN_SDK_VERSION/windows/VulkanSDK-$env:VULKAN_SDK_VERSION-Installer.exe" -OutFile 'C:\vulkan_sdk.exe' -C:\vulkan_sdk.exe --am --al -c in -if (!$?) { - Write-Host "Failed to install Vulkan SDK" - Exit 1 -} -Remove-Item C:\vulkan_sdk.exe -Force - -Get-Date -Write-Host "Downloading Vulkan-Runtime" -Invoke-WebRequest -Uri "https://sdk.lunarg.com/sdk/download/$env:VULKAN_SDK_VERSION/windows/VulkanRT-$env:VULKAN_SDK_VERSION-Installer.exe" -OutFile 'C:\vulkan-runtime.exe' | Out-Null -Write-Host "Installing Vulkan-Runtime" -Start-Process -NoNewWindow -Wait C:\vulkan-runtime.exe -ArgumentList '/S' -if (!$?) { - Write-Host "Failed to install Vulkan-Runtime" - Exit 1 -} -Remove-Item C:\vulkan-runtime.exe -Force - diff --git a/.gitlab-ci/windows/mesa_deps_vulkan_sdk.ps1 b/.gitlab-ci/windows/mesa_deps_vulkan_sdk.ps1 new file mode 100644 index 00000000000..4144b8eba44 --- /dev/null +++ b/.gitlab-ci/windows/mesa_deps_vulkan_sdk.ps1 @@ -0,0 +1,39 @@ +# Downloading specified vulkan sdk and vulkan runtime +# Touch this file needs update both WINDOWS_X64_BUILD_TAG WINDOWS_X64_TEST_TAG +# This file needs run in administrator mode + +$env:VULKAN_SDK_VERSION="1.3.211.0" + +$ProgressPreference = "SilentlyContinue" + +# Save environment VULKAN_SDK_VERSION to system +[System.Environment]::SetEnvironmentVariable('VULKAN_SDK_VERSION', "$env:VULKAN_SDK_VERSION", [System.EnvironmentVariableTarget]::Machine) + +$VULKAN_SDK_URL="https://sdk.lunarg.com/sdk/download/$env:VULKAN_SDK_VERSION/windows/VulkanSDK-$env:VULKAN_SDK_VERSION-Installer.exe" +Write-Host "Downloading Vulkan-SDK $VULKAN_SDK_URL at:" +Get-Date +Invoke-WebRequest -Uri "$VULKAN_SDK_URL" -OutFile "${env:TMP}\vulkan_sdk.exe" | Out-Null +Write-Host "Installing Vulkan-SDK at:" +Get-Date +Start-Process -NoNewWindow -Wait "${env:TMP}\vulkan_sdk.exe" -ArgumentList "--am --al -c in" +if (!$?) { + Write-Host "Failed to install Vulkan SDK" + Exit 1 +} +Remove-Item "${env:TMP}\vulkan_sdk.exe" -Force + +$VULKAN_RUNTIME_URL="https://sdk.lunarg.com/sdk/download/$env:VULKAN_SDK_VERSION/windows/VulkanRT-$env:VULKAN_SDK_VERSION-Installer.exe" +Write-Host "Downloading Vulkan-Runtime $VULKAN_RUNTIME_URL at:" +Get-Date +Invoke-WebRequest -Uri "$VULKAN_RUNTIME_URL" -OutFile "${env:TMP}\vulkan-runtime.exe" | Out-Null +Write-Host "Installing Vulkan-Runtime at:" +Get-Date +Start-Process -NoNewWindow -Wait "${env:TMP}\vulkan-runtime.exe" -ArgumentList '/S' +if (!$?) { + Write-Host "Failed to install Vulkan-Runtime" + Exit 1 +} +Remove-Item "${env:TMP}\vulkan-runtime.exe" -Force + +Write-Host "Installing Vulkan-Runtime finished at:" +Get-Date
