1 [CmdletBinding
(PositionalBinding
=$false)]
3 [string
][Alias
('c')]$configuration = "Debug",
5 [switch][Alias
('t')]$test,
10 [switch] $skipmscorlib,
12 [switch][Alias
('h')]$help,
13 [Parameter
(ValueFromRemainingArguments
=$true)][String
[]]$properties
16 . ../eng
/common
/pipeline-logging-functions
.ps1
18 function Print-Usage
() {
19 Write-Host "Common settings:"
20 Write-Host " -configuration <value> Build configuration: 'Debug' or 'Release' (short: -c)"
21 Write-Host " -help Print help and exit (short: -h)"
25 Write-Host " -pack Package build outputs into NuGet packages"
26 Write-Host " -test Run all unit tests in the solution (short: -t)"
27 Write-Host " -rebuild Clean only runtime build"
28 Write-Host " -clean Clean all and exit"
29 Write-Host " -llvm Enable LLVM support"
30 Write-Host " -skipnative Do not build runtime"
31 Write-Host " -skipmscorlib Do not build System.Private.CoreLib"
32 Write-Host " -ci Enable Azure DevOps telemetry decoration"
34 Write-Host "Command line arguments not listed above are passed thru to msbuild."
35 Write-Host "The above arguments can be shortened as much as to be unambiguous (e.g. -co for configuration, -t for test, etc.)."
44 $temp_file = [IO
.Path
]::GetTempFileName
()
45 cmd
.exe
/c
" ""$PSScriptRoot\..\msvc\setup-vs-msbuild-env.bat"" && set " > $temp_file
46 Get-Content $temp_file | Foreach-Object
{
47 if ($_ -match
"^(.*?)=(.*)$") {
48 Set-Content "env:\$($matches[1])" $matches[2]
51 Remove-Item $temp_file
60 MSBuild
"$PSScriptRoot\build.targets" `
62 "/p:Configuration=$configuration"
64 if ($LastExitCode -ne
0) {
65 Write-PipelineTelemetryError
-Category
"runtime" -Message
"Error cleaning"
72 # rebuild mono runtime
74 MSBuild
"$PSScriptRoot\build.targets" `
76 "/p:Configuration=$configuration" `
77 "/p:RuntimeBuildTarget=clean"
79 if ($LastExitCode -ne
0) {
80 Write-PipelineTelemetryError
-Category
"runtime" -Message
"Error cleaning unmanaged runtime"
87 MSBuild
"$PSScriptRoot\build.targets" `
89 "/p:Configuration=$configuration" `
90 "/p:MONO_ENABLE_LLVM=$enable_llvm"
92 if ($LastExitCode -ne
0) {
93 Write-PipelineTelemetryError
-Category
"runtime" -Message
"Error building unmanaged runtime"
98 # build System.Private.CoreLib
100 MSBuild
"$PSScriptRoot\build.targets" `
102 "/p:Configuration=$configuration"
104 if ($LastExitCode -ne
0) {
105 Write-PipelineTelemetryError
-Category
"bcl" -Message
"Error building System.Private.CoreLib"
111 Write-PipelineTelemetryError
-Category
"nupkg" -Message
"Error packing NuGet package (Not Implemented)"
115 # run all xunit tests
117 MSBuild
"$PSScriptRoot\build.targets" `
118 "/t:update-tests-corefx" `
119 "/p:Configuration=$configuration"
121 if ($LastExitCode -ne
0) {
122 Write-PipelineTelemetryError
-Category
"tests-download" -Message
"Error downloading tests"
131 MSBuild
"$PSScriptRoot\build.targets" `
132 "/t:run-tests-corefx" `
133 "/p:Configuration=$configuration" `
134 "/p:CoreFxTestTimeout=$timeout"
136 if ($LastExitCode -ne
0) {
137 Write-PipelineTelemetryError
-Category
"tests" -Message
"Error running tests"
143 Write-Host $_.ScriptStackTrace
144 Write-PipelineTelemetryError
-Category
"build" -Message
$_