kolibrios-gcc-toolchain/install.ps1
Egor00f 2bfe470796 use powershell features for install toolchain && use powershell script in installer
Additions:
+ modules for download and unpacking package
+ use Write-Progress for show progress
+ update libs in for loop
+ use ps1 installer in setup installer, because it not need pre-installed depends
+ Add test for PowerShell install script

Script not tested.
2024-11-15 16:45:10 +00:00

112 lines
2.8 KiB
PowerShell

#Requires -RunAsAdministrator
if (!Get-Module -ListAvailable -Name 7Zip4PowerShell)
{
Install-Module -Name 7Zip4PowerShell
}
$DEFAULT_InstallPath="C:\MinGW\msys\1.0\home\autobuild\tools"
PSStyle.Progress.View = 'Classic'
$URL_TO_LIBS = "http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/"
$LIST_OF_LIBS = @{
'libdll.a',
'libfreetype.a',
'libc.dll.a',
'libSDLn.a',
'libcurses.a',
'libz.dll.a',
'libogg.a',
'libvorbis.a',
'libopenjpeg.a'
}
param (
[string] $InstallPath=$DEFAULT_InstallPath
)
$OuterLoopProgressParameters = @{
Activity = "Installing toolchain"
Status = "toolchain",
PercentComplete = 0,
CurrentOperation = "Create the $InstallPath folder"
}
Write-Progress @OuterLoopProgressParameters
mkdir $InstallPath
$OuterLoopProgressParameters = @{
Activity = "Installing toolchain"
Status = "toolchain",
PercentComplete = 1,
CurrentOperation = "Download the kos32-gcc toolchain"
}
Write-Progress @OuterLoopProgressParameters
Invoke-WebRequest http://ftp.kolibrios.org/users/Serge/new/Toolchain/msys-kos32-5.4.0.7z -OutFile $InstallPath\kos32-toolchain.7z
$OuterLoopProgressParameters = @{
Activity = "Installing toolchain"
Status = "toolchain",
PercentComplete = 20,
CurrentOperation = "Unpacking kos32-gcc toolchain"
}
Write-Progress @OuterLoopProgressParameters
Expand-7Zip -ArchiveFileName $InstallPath\kos32-toolchain.7z -TargetPath $InstallPath
$OuterLoopProgressParameters = @{
Activity = "Installing toolchain"
Status = "Installing libraries",
PercentComplete = 40,
CurrentOperation = "Downloading libraries"
}
Write-Progress @OuterLoopProgressParameters
Invoke-WebRequest http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -OutFile $InstallPath\win32\mingw32\sdk-28-10-16.7z
# Unpack libs
$OuterLoopProgressParameters = @{
Activity = "Installing toolchain"
Status = "Installing libraries",
PercentComplete = 50,
CurrentOperation = "Downloading libraries"
}
Write-Progress @OuterLoopProgressParameters
Expand-7Zip -ArchiveFileName $InstallPath\win32\mingw32\sdk-28-10-16.7z -TargetPath $InstallPath\win32\mingw32\
for (($i = 0); $i -lt $LIST_OF_LIBS.count; $i++)
{
$OuterLoopProgressParameters = @{
Activity = "Installing toolchain"
Status = "Updating libraries",
PercentComplete = 50+(49 * ($i / $LIST_OF_LIBS.count) ),
CurrentOperation = "download $($LIST_OF_LIBS[$i])"
}
Write-Progress @OuterLoopProgressParameters
Invoke-WebRequest $URL_TO_LIBS$LIST_OF_LIBS[$i] -OutFile $InstallPath\win32\mingw32\lib\$LIST_OF_LIBS[$i]
}
$OuterLoopProgressParameters = @{
Activity = "Installing toolchain"
Status = "Done!",
PercentComplete = 99,
CurrentOperation = "Adding C:\MinGW\msys\1.0\home\autobuild\tools\win32\bin to PATH"
}
Write-Progress @OuterLoopProgressParameters
Write-Information -MessageData "Installation was successful!"