@@ -46,6 +46,7 @@ set processedArgs=
46
46
set __unprocessedBuildArgs =
47
47
set __RunArgs =
48
48
set __BuildAgainstPackagesArg =
49
+ set __BuildAgainstPackagesMsbuildArg =
49
50
set __RuntimeId =
50
51
set __ZipTests =
51
52
set __TargetsWindows = 1
@@ -56,6 +57,8 @@ set __DoCrossgen=
56
57
@ REM appears to CMD parsing as "-priority 1". Handle -priority specially to avoid problems,
57
58
@ REM and allow the "-priority=1" syntax.
58
59
set __Priority = 0
60
+ set __PriorityArg =
61
+ set __PassThroughArg =
59
62
60
63
:Arg_Loop
61
64
if " %1 " == " " goto ArgsDone
@@ -75,13 +78,14 @@ if /i "%1" == "checked" (set __BuildType=Checked&set processedArgs
75
78
76
79
if /i " %1 " == " skipmanaged" (set __SkipManaged=1& set processedArgs=!processedArgs! %1 & shift& goto Arg_Loop)
77
80
if /i " %1 " == " toolset_dir" (set __ToolsetDir=%2 & set __PassThroughArgs=%__PassThroughArgs% %2 & set processedArgs=!processedArgs! %1 %2 & shift& shift& goto Arg_Loop)
78
- if /i " %1 " == " buildagainstpackages" (set __ZipTests=1& set __BuildAgainstPackagesArg=-BuildTestsAgainstPackages& set processedArgs=!processedArgs! %1 & shift& goto Arg_Loop)
81
+ if /i " %1 " == " buildagainstpackages" (set __ZipTests=1& set __BuildAgainstPackagesArg=-BuildTestsAgainstPackages& set __BuildAgainstPackagesMsbuildArg=/p:BuildTestsAgainstPackages=true & set processedArgs=!processedArgs! %1 & shift& goto Arg_Loop)
79
82
if /i " %1 " == " ziptests" (set __ZipTests=1& set processedArgs=!processedArgs! %1 & shift& goto Arg_Loop)
80
83
if /i " %1 " == " crossgen" (set __DoCrossgen=1& set processedArgs=!processedArgs! %1 & shift& goto Arg_Loop)
81
84
if /i " %1 " == " runtimeid" (set __RuntimeId=%2 & set processedArgs=!processedArgs! %1 %2 & shift& shift& goto Arg_Loop)
82
85
if /i " %1 " == " targetsNonWindows" (set __TargetsWindows=0& set processedArgs=!processedArgs! %1 & shift& goto Arg_Loop)
83
86
if /i " %1 " == " Exclude" (set __Exclude=%2 & set processedArgs=!processedArgs! %1 %2 & shift& shift& goto Arg_Loop)
84
87
if /i " %1 " == " -priority" (set __Priority=%2 & shift& set processedArgs=!processedArgs! %1 =%2 & shift& goto Arg_Loop)
88
+ if /i " %1 " == " --" (set __PassThroughArg=%1 & set processedArgs=!processedArgs! %1 & shift& goto Arg_Loop)
85
89
86
90
if [!processedArgs! ]== [] (
87
91
set __UnprocessedBuildArgs = %__args%
@@ -95,7 +99,7 @@ if [!processedArgs!]==[] (
95
99
:ArgsDone
96
100
97
101
@ REM Special handling for -priority=N argument.
98
- if %__Priority% GTR 0 (set " __UnprocessedBuildArgs= !__UnprocessedBuildArgs! -priority=%__Priority% " )
102
+ if %__Priority% GTR 0 (set " __PriorityArg= -priority=%__Priority% " )
99
103
100
104
if defined __BuildAgainstPackagesArg (
101
105
if not defined __RuntimeID (
@@ -107,6 +111,8 @@ if defined __BuildAgainstPackagesArg (
107
111
@ if defined _echo @ echo on
108
112
109
113
set __RunArgs = -BuildOS=%__BuildOS% -BuildType=%__BuildType% -BuildArch=%__BuildArch%
114
+ REM As we move from buildtools to arcade, __RunArgs should be replaced with __msbuildArgs
115
+ set __msbuildArgs = /p:__BuildOS=%__BuildOS% /p:__BuildType=%__BuildType% /p:__BuildArch=%__BuildArch%
110
116
111
117
if defined __ToolsetDir (
112
118
rem arm64 builds currently use private toolset which has not been released yet
@@ -150,6 +156,12 @@ REM ===
150
156
REM =========================================================================================
151
157
call " %__ProjectDir% \init-tools.cmd"
152
158
@ if defined _echo @ echo on
159
+ set " __ToolsDir = %__ProjectDir% \Tools"
160
+ set " __DotnetHost = %__ToolsDir% \dotnetcli\dotnet.exe"
161
+ if not exist " %__DotnetHost% " (
162
+ echo %__DotnetHost% not found after init-tools.
163
+ exit /b 1
164
+ )
153
165
154
166
REM =========================================================================================
155
167
REM ===
@@ -212,7 +224,7 @@ set __msbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%"
212
224
set __msbuildWrn = /flp1:WarningsOnly;LogFile=" %__BuildWrn% "
213
225
set __msbuildErr = /flp2:ErrorsOnly;LogFile=" %__BuildErr% "
214
226
215
- call " %__ProjectDir% \run.cmd" build -Project=" %__NativeTestIntermediatesDir% \install.vcxproj" -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__msbuildNativeArgs% %__RunArgs% %__unprocessedBuildArgs%
227
+ call " %__ProjectDir% \run.cmd" build -Project=" %__NativeTestIntermediatesDir% \install.vcxproj" -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__msbuildNativeArgs% %__RunArgs% %__PriorityArg% %__PassThroughArg% % __unprocessedBuildArgs%
216
228
if errorlevel 1 (
217
229
echo %__MsgPrefix% Error: build failed. Refer to the build log files for details:
218
230
echo %__BuildLog%
@@ -243,7 +255,7 @@ set __msbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%"
243
255
set __msbuildWrn = /flp1:WarningsOnly;LogFile=" %__BuildWrn% "
244
256
set __msbuildErr = /flp2:ErrorsOnly;LogFile=" %__BuildErr% "
245
257
246
- call " %__ProjectDir% \run.cmd" build -Project=%__ProjectDir% \tests\build.proj -BatchRestorePackages -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__unprocessedBuildArgs%
258
+ call " %__ProjectDir% \run.cmd" build -Project=%__ProjectDir% \tests\build.proj -BatchRestorePackages -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__PriorityArg% %__PassThroughArg% % __unprocessedBuildArgs%
247
259
248
260
set __BuildLogRootName = Tests_GenerateRuntimeLayout
249
261
set __BuildLog = %__LogsDir% \%__BuildLogRootName% _%__BuildOS% __%__BuildArch% __%__BuildType% .log
@@ -253,7 +265,7 @@ set __msbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%"
253
265
set __msbuildWrn = /flp1:WarningsOnly;LogFile=" %__BuildWrn% "
254
266
set __msbuildErr = /flp2:ErrorsOnly;LogFile=" %__BuildErr% "
255
267
256
- call " %__ProjectDir% \run.cmd" build -Project=%__ProjectDir% \tests\runtest.proj -BinPlaceRef -BinPlaceProduct -CopyCrossgenToProduct -RuntimeId=" %__RuntimeId% " -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__unprocessedBuildArgs%
268
+ call " %__ProjectDir% \run.cmd" build -Project=%__ProjectDir% \tests\runtest.proj -BinPlaceRef -BinPlaceProduct -CopyCrossgenToProduct -RuntimeId=" %__RuntimeId% " -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__PriorityArg% %__PassThroughArg% % __unprocessedBuildArgs%
257
269
if errorlevel 1 (
258
270
echo BinPlace of mscorlib.dll failed
259
271
exit /b 1
@@ -301,7 +313,7 @@ for /l %%G in (1, 1, %__BuildLoopCount%) do (
301
313
set __msbuildErr = /flp2:ErrorsOnly;LogFile=" %__BuildErr% " ;Append=!__AppendToLog!
302
314
303
315
set TestBuildSlice = %%G
304
- call " %__ProjectDir% \run.cmd" build -Project=%__ProjectDir% \tests\build.proj -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__unprocessedBuildArgs%
316
+ call " %__ProjectDir% \run.cmd" build -Project=%__ProjectDir% \tests\build.proj -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %__PriorityArg% %__PassThroughArg% % __unprocessedBuildArgs%
305
317
306
318
if errorlevel 1 (
307
319
echo %__MsgPrefix% Error: build failed. Refer to the build log files for details:
@@ -331,7 +343,7 @@ md "%CORE_ROOT_STAGE%"
331
343
xcopy " %__BinDir% " " %CORE_ROOT_STAGE% "
332
344
333
345
334
- if defined __BuildAgainstPackagesArg (
346
+ if defined __BuildAgainstPackagesArg (
335
347
if " %__TargetsWindows% " == " 0" (
336
348
337
349
if not exist %__PackagesDir% \TestNativeBins (
@@ -347,16 +359,18 @@ if defined __BuildAgainstPackagesArg (
347
359
echo %__MsgPrefix% Creating test wrappers...
348
360
349
361
set RuntimeIdArg =
350
- set TargetsWindowsArg =
351
-
352
362
if defined __RuntimeId (
353
363
set RuntimeIdArg = -RuntimeID=" %__RuntimeId% "
354
364
)
355
365
366
+ set TargetsWindowsArg =
367
+ set TargetsWindowsMsbuildArg =
356
368
if " %__TargetsWindows% " == " 1" (
357
369
set TargetsWindowsArg = -TargetsWindows=true
370
+ set TargetsWindowsMsbuildArg = /p:TargetsWindows=true
358
371
) else if " %__TargetsWindows% " == " 0" (
359
372
set TargetsWindowsArg = -TargetsWindows=false
373
+ set TargetsWindowsMsbuildArg = /p:TargetsWindows=false
360
374
)
361
375
362
376
set __BuildLogRootName = Tests_XunitWrapper
@@ -367,11 +381,13 @@ set __msbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%"
367
381
set __msbuildWrn = /flp1:WarningsOnly;LogFile=" %__BuildWrn% "
368
382
set __msbuildErr = /flp2:ErrorsOnly;LogFile=" %__BuildErr% "
369
383
370
- call %__ProjectDir% \run.cmd build -Project=%__ProjectDir% \tests\runtest.proj -BuildWrappers -MsBuildEventLogging=" " -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %TargetsWindowsArg% %__unprocessedBuildArgs%
384
+ REM Build wrappers using the local SDK's msbuild. As we move to arcade, the other builds should be moved away from run.exe as well.
385
+ call %__DotnetHost% msbuild %__ProjectDir% \tests\runtest.proj /p:BuildWrappers=true !__msbuildLog! !__msbuildWrn! !__msbuildErr! %__msbuildArgs% %TargetsWindowsMsbuildArg% %__BuildAgainstPackagesMsbuildArg% %__unprocessedBuildArgs%
371
386
if errorlevel 1 (
372
387
echo Xunit Wrapper build failed
373
388
exit /b 1
374
389
)
390
+ echo { " build_os" : " %__BuildOS% " , " build_arch" : " %__BuildArch% " , " build_type" : " %__BuildType% " } > " %__TestBinDir% /build_info.json"
375
391
376
392
echo %__MsgPrefix% Creating test overlay...
377
393
@@ -383,7 +399,7 @@ set __msbuildLog=/flp:Verbosity=normal;LogFile="%__BuildLog%"
383
399
set __msbuildWrn = /flp1:WarningsOnly;LogFile=" %__BuildWrn% "
384
400
set __msbuildErr = /flp2:ErrorsOnly;LogFile=" %__BuildErr% "
385
401
386
- call %__ProjectDir% \run.cmd build -Project=%__ProjectDir% \tests\runtest.proj -testOverlay -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %RuntimeIdArg% %__unprocessedBuildArgs%
402
+ call %__ProjectDir% \run.cmd build -Project=%__ProjectDir% \tests\runtest.proj -testOverlay -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %RuntimeIdArg% %__PriorityArg% %__PassThroughArg% % __unprocessedBuildArgs%
387
403
if errorlevel 1 (
388
404
echo %__MsgPrefix% Error: build failed. Refer to the build log files for details:
389
405
echo %__BuildLog%
@@ -422,7 +438,7 @@ REM === Prep test binaries for Helix publishing
422
438
REM ===
423
439
REM =========================================================================================
424
440
425
- call %__ProjectDir% \run.cmd build -Project=%__ProjectDir% \tests\helixprep.proj -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %RuntimeIdArg% %TargetsWindowsArg% %__CrossgenArg% %__unprocessedBuildArgs%
441
+ call %__ProjectDir% \run.cmd build -Project=%__ProjectDir% \tests\helixprep.proj -MsBuildLog=!__msbuildLog! -MsBuildWrn=!__msbuildWrn! -MsBuildErr=!__msbuildErr! %__RunArgs% %__BuildAgainstPackagesArg% %RuntimeIdArg% %TargetsWindowsArg% %__CrossgenArg% %__PriorityArg% %__PassThroughArg% % __unprocessedBuildArgs%
426
442
if errorlevel 1 (
427
443
echo %__MsgPrefix% Error: build failed. Refer to the build log files for details:
428
444
echo %__BuildLog%
@@ -550,6 +566,6 @@ if %__exitCode% neq 0 (
550
566
:: Delete original .dll & replace it with the Crossgened .dll
551
567
del %1
552
568
ren " %CORE_ROOT% \temp.ni.dll" %2
553
-
569
+
554
570
echo Successfully precompiled %2
555
571
exit /b 0
0 commit comments