[PATCH v2 1/4] ci(gitlab,windows): provision GNU Rust for SDK-based MinGW builds
- From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Sep 24, 2026, 20:01 UTC
- Message-ID
- <cdf2eff48020ef72bcfe36aa55467c9cc8ece9ac.1790280113.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.2233.v2.git.1790280113.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>
The minimal Git for Windows SDK already supplies Git and GCC. The MinGW Makefile build needs the Rust toolchain that targets GCC (as opposed to the more common MSVC one), not another Git installation or Meson.
Prepare the `install-dependencies.ps1` script to be able to install the GCC-targeting Rust toolchain.
Assisted-by: GPT-6 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> --- ci/install-dependencies.ps1 | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/ci/install-dependencies.ps1 b/ci/install-dependencies.ps1 index e3b367fa54..8c68fb0cfc 100755 --- a/ci/install-dependencies.ps1 +++ b/ci/install-dependencies.ps1 @@ -1,5 +1,6 @@ param( - [string]$DownloadDirectory = '.dependencies' + [string]$DownloadDirectory = '.dependencies', + [switch]$Mingw ) $ErrorActionPreference = 'Stop' @@ -41,6 +42,17 @@ function Invoke-Installer { } } +$rustTarget = if ($Mingw) { 'gnu' } else { 'msvc' } +$rustMsi = Get-Installer "rust-$rustTarget.msi" ( + "https://static.rust-lang.org/dist/" + + "rust-$RustVersion-x86_64-pc-windows-$rustTarget.msi") +Invoke-Installer msiexec.exe @('/i', $rustMsi, 'INSTALLDIR=C:\Rust', + 'ADDLOCAL=Rustc,Cargo,Std', '/quiet', '/norestart') + +if ($Mingw) { + return +} + $gitAssetVersion = $GitVersion -replace '\.windows\.\d+$', '' $gitInstaller = Get-Installer "Git-Installer.exe" ` "https://github.com/git-for-windows/git/releases/download/v$GitVersion/PortableGit-$gitAssetVersion-64-bit.7z.exe" @@ -49,7 +61,3 @@ Invoke-Installer $gitInstaller @('-y', '-o"C:\Program Files\Git"') $mesonMsi = Get-Installer "meson.msi" ` "https://github.com/mesonbuild/meson/releases/download/$MesonVersion/meson-$MesonVersion-64.msi" Invoke-Installer msiexec.exe @('/i', $mesonMsi, 'INSTALLDIR=C:\Meson', '/quiet', '/norestart') - -$rustMsi = Get-Installer "rust.msi" ` - "https://static.rust-lang.org/dist/rust-$RustVersion-x86_64-pc-windows-msvc.msi" -Invoke-Installer msiexec.exe @('/i', $rustMsi, 'INSTALLDIR=C:\Rust', 'ADDLOCAL=Rustc,Cargo,Std', '/quiet', '/norestart')
-- gitgitgadget