You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Remote/prm.build.ps1

67 lines
1.9 KiB
PowerShell

4 years ago
<# .PARAMETER ib #>
param (
[ValidateSet('Debug', 'R2Store', 'R2Win32')]
[string] $aReleaseType = 'R2Win32'
4 years ago
)
Enter-Build {
$SolutionPath = Join-Path $pwd PRM.sln
$ProjectName = Split-Path $pwd -Leaf
$msbuild = Resolve-MSBuild
Write-Host "Using msbuild: $msbuild"
Set-Alias MSBuild $msbuild -Scope Global
}
# Synopsis: Ensure local dependencies
task Deps {
if (!(Test-Admin)) { throw "This task must be run in administrative shell" }
if (!(Get-Command choco.exe -ErrorAction 0)) {
Invoke-WebRequest https://chocolatey.org/install.ps1 -UseBasicParsing | Invoke-Expression
} else { Write-Host "Chocolatey already installed" }
exec {
#choco install -y dotnetfx --version 4.8.0.20190930
#choco install -y visualstudio2019buildtools
#choco install -y visualstudio2019-workload-universal
#choco install -y windows-sdk-10-version-1809-all
choco install -y visualstudio2019community
choco install -y netfx-4.8-devpack
choco install -y visualstudio2019-workload-manageddesktop
choco install -y visualstudio2019-workload-universal
# optional
# choco install -y git
}
}
# Synopsis: Build the application
task Build {
exec { MSBuild $SolutionPath /t:Build /property:Configuration=$aReleaseType }
4 years ago
}
# Synopsis: Build in Windows Sandbox
task BuildInSandbox {
.\scripts\Test-Sandbox.ps1 -MapFolder $pwd -Script "
cd `$Env:USERPROFILE\Desktop\$ProjectName
Set-Alias ib `$pwd\Invoke-Build.ps1
ib Deps
ib Build
"
}
4 years ago
# Synopsis: Clean generated data
task Clean {
4 years ago
exec { MSBuild $SolutionPath /t:Clean /property:Configuration=$aReleaseType }
4 years ago
}
4 years ago
# Test for administration privileges
function Test-Admin() {
$usercontext = [Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()
$usercontext.IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
}