128 lines
5.3 KiB
PowerShell
128 lines
5.3 KiB
PowerShell
$ErrorActionPreference = "Stop"
|
|
|
|
function Get-InstalledApps
|
|
{
|
|
if ([IntPtr]::Size -eq 4) {
|
|
$regpath = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*'
|
|
}
|
|
else {
|
|
$regpath = @(
|
|
'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*'
|
|
'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'
|
|
)
|
|
}
|
|
Get-ItemProperty $regpath | .{process{if($_.DisplayName -and $_.UninstallString) { $_ } }} | Select DisplayName, Publisher, InstallDate, DisplayVersion, UninstallString |Sort DisplayName
|
|
}
|
|
|
|
# Install chocolatey
|
|
if (!(Get-Command choco -errorAction SilentlyContinue)) {
|
|
echo "Installing chocolatey"
|
|
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
|
|
}
|
|
|
|
# Install Git
|
|
$result = Get-InstalledApps | where {$_.DisplayName -like "Git *"}
|
|
if($result -eq $null) {
|
|
echo "Installing git"
|
|
choco install -y git
|
|
}
|
|
|
|
# Install NSIS
|
|
$result = Get-InstalledApps | where {$_.DisplayName -like "Nullsoft Install System"}
|
|
if($result -eq $null) {
|
|
echo "Installing nsis"
|
|
choco install -y nsis
|
|
}
|
|
|
|
# Install OpenSSL
|
|
Set-Variable -Name "OpenSslVer" -Value "1.0.2j"
|
|
|
|
if (!(Test-Path "$PSScriptRoot\openssl-$OpenSslVer-i386-win32.zip")) {
|
|
echo "Downloading openssl (32bits)"
|
|
Invoke-WebRequest -Uri "https://indy.fulgan.com/SSL/openssl-$OpenSslVer-i386-win32.zip" -OutFile "$PSScriptRoot\openssl-$OpenSslVer-i386-win32.zip"
|
|
}
|
|
|
|
if (!(Test-Path "$PSScriptRoot\openssl-$OpenSslVer-x64_86-win64.zip")) {
|
|
echo "Downloading openssl (64bits)"
|
|
Invoke-WebRequest -Uri "https://indy.fulgan.com/SSL/openssl-$OpenSslVer-x64_86-win64.zip" -OutFile "$PSScriptRoot\openssl-$OpenSslVer-x64_86-win64.zip"
|
|
}
|
|
|
|
if (!(Test-Path "c:\openssl-$OpenSslVer-i386-win32")) {
|
|
echo "Unpacking openssl (32bits)"
|
|
Expand-Archive "$PSScriptRoot\openssl-$OpenSslVer-i386-win32.zip" -dest c:\openssl-$OpenSslVer-i386-win32
|
|
}
|
|
|
|
if (!(Test-Path "c:\openssl-$OpenSslVer-x64_86-win64")) {
|
|
echo "Unpacking openssl (64bits)"
|
|
Expand-Archive "$PSScriptRoot\openssl-$OpenSslVer-x64_86-win64.zip" -dest c:\openssl-$OpenSslVer-x64_86-win64
|
|
}
|
|
|
|
# Install Qt
|
|
|
|
if (!(Test-Path "$PSScriptRoot\qt-opensource-windows-x86-msvc2015-5.7.0.exe")) {
|
|
echo "Downloading Qt (32bits)"
|
|
Invoke-WebRequest -Uri "http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-windows-x86-msvc2015-5.7.0.exe" -OutFile "$PSScriptRoot\qt-opensource-windows-x86-msvc2015-5.7.0.exe"
|
|
}
|
|
|
|
if (!(Test-Path "$PSScriptRoot\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe")) {
|
|
echo "Downloading Qt (64bits)"
|
|
Invoke-WebRequest -Uri "http://download.qt.io/official_releases/qt/5.7/5.7.0/qt-opensource-windows-x86-msvc2015_64-5.7.0.exe" -OutFile "$PSScriptRoot\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe"
|
|
}
|
|
|
|
if (!(Test-Path "c:\Qt\Qt5.7.0_32")) {
|
|
if (!(Test-Path "c:\qt-opensource-windows-x86-msvc2015-5.7.0.exe")) {
|
|
echo "Copying Qt installer to C: (32bits)"
|
|
Copy-Item "$PSScriptRoot\qt-opensource-windows-x86-msvc2015-5.7.0.exe" "c:\qt-opensource-windows-x86-msvc2015-5.7.0.exe"
|
|
}
|
|
|
|
echo "Installing Qt (32bits)"
|
|
Start-Process -FilePath "c:\qt-opensource-windows-x86-msvc2015-5.7.0.exe" -ArgumentList ("--script", "$PSScriptRoot\qt-noninteractive32.qs") -Wait
|
|
Remove-Item "c:\qt-opensource-windows-x86-msvc2015-5.7.0.exe"
|
|
}
|
|
|
|
if (!(Test-Path "c:\Qt\Qt5.7.0_64")) {
|
|
if (!(Test-Path "c:\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe")) {
|
|
echo "Copying Qt installer to C: (64bits)"
|
|
Copy-Item "$PSScriptRoot\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe" "c:\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe"
|
|
}
|
|
|
|
echo "Installing Qt (64bits)"
|
|
Start-Process -FilePath "c:\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe" -ArgumentList ("--script", "$PSScriptRoot\qt-noninteractive64.qs") -Wait
|
|
Remove-Item "c:\qt-opensource-windows-x86-msvc2015_64-5.7.0.exe"
|
|
}
|
|
|
|
# Install C++ Build tools
|
|
#$result = Get-InstalledApps | where {$_.DisplayName -like "Microsoft Visual C++ Build Tools"}
|
|
#if ($result -eq $null) {
|
|
# echo "Installing VC BUild tools"
|
|
# Start-Process -FilePath "$PSScriptRoot\vcbuildtools\VisualCppBuildTools_Full.exe" -ArgumentList ("/Passive", "/NoRestart", "/AdminFile", "$PSScriptRoot\AdminDeployment.xml") -Wait
|
|
#}
|
|
|
|
#$result = Get-InstalledApps | where {$_.DisplayName -like "Windows Software Development Kit - *"}
|
|
#if ($result -eq $null) {
|
|
# echo "Installing SDK + Debugger"
|
|
# Start-Process -FilePath "$PSScriptRoot\windowssdk/StandaloneSDK\sdksetup.exe" -ArgumentList ("/features", "OptionId.WindowsDesktopDebuggers", "/quiet") -Wait
|
|
#}
|
|
|
|
# Install MobaSSH
|
|
if (!(Test-Path "$PSScriptRoot\MobaSSH_Server_Home_1.60.zip")) {
|
|
echo "Downloading MobaSSH"
|
|
Invoke-WebRequest -Uri "http://mobassh.mobatek.net/MobaSSH_Server_Home_1.60.zip" -OutFile "$PSScriptRoot\MobaSSH_Server_Home_1.60.zip"
|
|
}
|
|
|
|
if (!(Test-Path "c:\MobaSSH_Server_Home_1.60.exe")) {
|
|
echo "Unpacking MobaSSH"
|
|
Expand-Archive "$PSScriptRoot\MobaSSH_Server_Home_1.60.zip" -dest c:\
|
|
}
|
|
|
|
# Install MSYS2
|
|
if (!(Test-Path "$PSScriptRoot\msys2-x86_64-20161025.exe")) {
|
|
echo "Downloading MSYS2"
|
|
Invoke-WebRequest -Uri "http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20161025.exe" -OutFile "$PSScriptRoot\http://repo.msys2.org/distrib/x86_64/msys2-x86_64-20161025.exe"
|
|
}
|
|
|
|
if (!(Test-Path "c:\msys64")) {
|
|
echo "Installing MSYS2"
|
|
Start-Process -FilePath "$PSScriptRoot\msys2-x86_64-20161025.exe" -Wait
|
|
}
|