refactor windows_build_setup.ps1 for easier re-usability

Now You can source the script with .(dot) and use individual functions.
This also makes it easier to use in `infra-ci` Ansible roles.

Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
Jakub Sokołowski 2020-10-04 12:07:59 +02:00 committed by Jakub
parent b03e5c72e8
commit dc14bbe9ec

View File

@ -2,29 +2,32 @@
# Configures a build envrionment for nim-status-client on windows. # Configures a build envrionment for nim-status-client on windows.
#--------------------------------------------------------------------- #---------------------------------------------------------------------
# Stop the script after first error # Helpers
$ErrorActionPreference = 'Stop' function Install-Scoop {
if ((Get-Command scoop -ErrorAction SilentlyContinue) -ne $null) {
#--------------------------------------------------------------------- Write-Host "Scoop already installed!"
} else {
Write-Host "Installing Scoop package manager..." Write-Host "Installing Scoop package manager..."
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh') Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
}
}
#---------------------------------------------------------------------
# Install Git and other dependencies # Install Git and other dependencies
function Install-Dependencies {
Write-Host "Installing dependencies..." Write-Host "Installing dependencies..."
scoop install --global 7zip git fzf dos2unix findutils wget gcc go rcedit cmake python ntop jq scoop install --global 7zip git dos2unix findutils wget make cmake gcc go rcedit
scoop bucket add extras scoop bucket add extras
scoop install --global vcredist2017 scoop install --global vcredist2017
}
#--------------------------------------------------------------------- function Install-Qt-SDK {
$QtVersion = "5.14.2"
Write-Host "Installing Qt $QtVersion SDK..." Write-Host "Installing Qt $QtVersion SDK..."
# Install Qt
pip install aqtinstall pip install aqtinstall
aqt install --output "C:\Qt" $QtVersion windows desktop win64_msvc2017_64 aqt install --output "C:\Qt" $QtVersion windows desktop win64_msvc2017_64
}
#---------------------------------------------------------------------
# Install Microsoft Visual C++ Build Tools 15.8.9 # Install Microsoft Visual C++ Build Tools 15.8.9
function Install-VC-BuildTools {
$VCBuildToolsUrl = "https://download.visualstudio.microsoft.com/download/pr/e286f66e-4366-425f-bcc5-c88627c6e95a/0401d4decb00884a7d50f69732e1d680/vs_buildtools.exe" $VCBuildToolsUrl = "https://download.visualstudio.microsoft.com/download/pr/e286f66e-4366-425f-bcc5-c88627c6e95a/0401d4decb00884a7d50f69732e1d680/vs_buildtools.exe"
$VCBuildToolsExe = "$HOME\Downloads\vs_BuildTools.exe" $VCBuildToolsExe = "$HOME\Downloads\vs_BuildTools.exe"
@ -44,8 +47,9 @@ $VCBuildToolsArgs = $(
"--add", "Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Win81" "--add", "Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Win81"
) )
Start-Process -Wait -PassThru -FilePath $VCBuildToolsExe -ArgumentList $VCBuildToolsArgs Start-Process -Wait -PassThru -FilePath $VCBuildToolsExe -ArgumentList $VCBuildToolsArgs
}
#--------------------------------------------------------------------- function Show-Success-Message {
Write-Host @" Write-Host @"
SUCCESS! SUCCESS!
@ -60,3 +64,22 @@ You might also have to include the following paths in your `$PATH:
export PATH=`"/c/BuildTools/MSBuild/Current/Bin:/c/BuildTools/VC/Tools/MSVC/14.27.29110/bin:`$PATH`" export PATH=`"/c/BuildTools/MSBuild/Current/Bin:/c/BuildTools/VC/Tools/MSVC/14.27.29110/bin:`$PATH`"
"@ "@
}
#---------------------------------------------------------------------
# Stop the script after first error
$ErrorActionPreference = 'Stop'
# Version of Qt SDK available form aqt
$QtVersion = "5.14.2"
# Don't run when sourcing script
If ($MyInvocation.InvocationName -ne ".") {
Install-Scoop
Install-Dependencies
Install-Qt-SDK
Install-VC-BuildTools
Show-Success-Message
}
#---------------------------------------------------------------------