mirror of
https://github.com/vczh-libraries/Release.git
synced 2026-03-23 07:42:52 +08:00
39 lines
1.6 KiB
PowerShell
39 lines
1.6 KiB
PowerShell
param(
|
|
[string]$Configuration = "Debug",
|
|
[string]$Platform = "x64"
|
|
)
|
|
|
|
if (($Configuration -ne "Debug") -and ($Configuration -ne "Release")) {
|
|
throw "Invalid configuration: $Configuration. Allowed values are Debug or Release."
|
|
}
|
|
if (($Platform -ne "x64") -and ($Platform -ne "Win32")) {
|
|
throw "Invalid platform: $Platform. Allowed values are x64 or Win32."
|
|
}
|
|
|
|
. $PSScriptRoot\copilotShared.ps1
|
|
|
|
# Remove log files
|
|
$logFile = "$PSScriptRoot\Build.log"
|
|
$logFileUnfinished = "$logFile.unfinished"
|
|
Remove-Item -Path $logFile, $logFileUnfinished -Force -ErrorAction SilentlyContinue
|
|
|
|
# Find the solution folder by looking for *.sln files
|
|
$solutionFolder = GetSolutionDir
|
|
$solutionFile = "$solutionFolder\$((Get-ChildItem -Path $solutionFolder -Filter "*.sln" -ErrorAction SilentlyContinue)[0].Name)"
|
|
|
|
$vsdevcmd = $env:VLPP_VSDEVCMD_PATH
|
|
if ($vsdevcmd -eq $null) {
|
|
$MESSAGE_1 = "You have to add an environment variable named VLPP_VSDEVCMD_PATH and set its value to the path of VsDevCmd.bat, e.g.:"
|
|
$MESSAGE_2 = "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\Tools\VsDevCmd.bat"
|
|
throw "$MESSAGE_1\r\n$MESSAGE_2"
|
|
}
|
|
|
|
# Execute msbuild with output to both console and log file
|
|
$msbuild_arguments = "MSBUILD `"$solutionFile`" /m:8 $rebuildControl /p:Configuration=`"$Configuration`";Platform=`"$Platform`""
|
|
$cmd_arguments = "`"`"$vsdevcmd`" & $msbuild_arguments"
|
|
|
|
$commandLine = "/c $cmd_arguments"
|
|
& $env:ComSpec $commandLine 2>&1 | Tee-Object -FilePath $logFileUnfinished
|
|
Rename-Item -Path $logFileUnfinished -NewName $logFile -Force
|
|
exit $LASTEXITCODE
|