mirror of
https://github.com/Egor00f/kolibrios-gcc-toolchain.git
synced 2024-11-21 17:03:48 +01:00
Egor00f
2bfe470796
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.
112 lines
2.8 KiB
PowerShell
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!"
|