From de7775d901a5a2fd58017c7a0ae4b80764e69961 Mon Sep 17 00:00:00 2001 From: Leonid Lapshin Date: Tue, 29 Jun 2021 11:59:03 +0300 Subject: [PATCH] [windows] Improve MSYS2 installation (#3652) --- .../win/scripts/Installers/Install-Msys2.ps1 | 5 ++-- images/win/scripts/Tests/MSYS2.Tests.ps1 | 29 ++++++------------- images/win/toolsets/toolset-2016.json | 2 ++ images/win/toolsets/toolset-2019.json | 2 ++ 4 files changed, 15 insertions(+), 23 deletions(-) diff --git a/images/win/scripts/Installers/Install-Msys2.ps1 b/images/win/scripts/Installers/Install-Msys2.ps1 index 894653ac..1a7f2a9a 100644 --- a/images/win/scripts/Installers/Install-Msys2.ps1 +++ b/images/win/scripts/Installers/Install-Msys2.ps1 @@ -79,13 +79,12 @@ foreach ($arch in $archs) Write-Host "`n$dash Clean packages" pacman.exe -Scc --noconfirm -Write-Host "`n$dash Installed msys2 packages" -pacman.exe -Q | grep -v ^mingw-w64- +$pkgs = pacman.exe -Q foreach ($arch in $archs) { Write-Host "`n$dash Installed $arch packages" - pacman.exe -Q | grep ^${arch}- + $pkgs | grep ^${arch}- } $env:PATH = $origPath diff --git a/images/win/scripts/Tests/MSYS2.Tests.ps1 b/images/win/scripts/Tests/MSYS2.Tests.ps1 index 1290dd16..9316730b 100644 --- a/images/win/scripts/Tests/MSYS2.Tests.ps1 +++ b/images/win/scripts/Tests/MSYS2.Tests.ps1 @@ -1,6 +1,3 @@ -$toolsetContent = (Get-ToolsetContent).MsysPackages -$archs = $toolsetContent.mingw.arch - BeforeAll { $msys2Dir = "C:\msys64\usr\bin" $originalPath = $env:PATH @@ -34,31 +31,23 @@ Describe "MSYS2 packages" { } } -foreach ($arch in $archs) { - Describe "$arch arch packages" { - $archPackages = $toolsetContent.mingw | Where-Object { $_.arch -eq $arch } - $tools = $archPackages.runtime_packages.name - - if ($arch -eq "mingw-w64-i686") - { - $ExecDir = "C:\msys64\mingw32\bin" - } - else - { - $ExecDir = "C:\msys64\mingw64\bin" - } +$mingwTypes = (Get-ToolsetContent).MsysPackages.mingw +foreach ($mingwType in $mingwTypes) { + Describe "$($mingwType.arch) packages" { + $tools = $mingwType.runtime_packages + $execDir = Join-Path "C:\msys64" $mingwType.exec_dir | Join-Path -ChildPath "bin" foreach ($tool in $tools) { - Context "$tool package"{ - $executables = ($archPackages.runtime_packages | Where-Object { $_.name -eq $tool }).executables | ForEach-Object { + Context "$($tool.name) package"{ + $executables = $tool.executables | ForEach-Object { @{ ExecName = $_ - ExecDir = $ExecDir + ExecDir = $execDir } } BeforeEach { - $env:PATH = "$ExecDir;$env:PATH" + $env:PATH = "$execDir;$env:PATH" } It " is installed in " -TestCases $executables { diff --git a/images/win/toolsets/toolset-2016.json b/images/win/toolsets/toolset-2016.json index 0cd62ff9..4c36f261 100644 --- a/images/win/toolsets/toolset-2016.json +++ b/images/win/toolsets/toolset-2016.json @@ -181,6 +181,7 @@ "mingw": [ { "arch": "mingw-w64-x86_64", + "exec_dir": "mingw64", "runtime_packages": [ { "name": "clang", @@ -214,6 +215,7 @@ }, { "arch": "mingw-w64-i686", + "exec_dir": "mingw32", "runtime_packages": [ { "name": "clang", diff --git a/images/win/toolsets/toolset-2019.json b/images/win/toolsets/toolset-2019.json index 84841df8..5a43d725 100644 --- a/images/win/toolsets/toolset-2019.json +++ b/images/win/toolsets/toolset-2019.json @@ -181,6 +181,7 @@ "mingw": [ { "arch": "mingw-w64-x86_64", + "exec_dir": "mingw64", "runtime_packages": [ { "name": "clang", @@ -214,6 +215,7 @@ }, { "arch": "mingw-w64-i686", + "exec_dir": "mingw32", "runtime_packages": [ { "name": "clang",