1 @if not defined _echo @echo off
2 setlocal EnableDelayedExpansion
4 set "__ProjectDir=%~dp0"
12 if "%1" == "" goto ArgsDone
13 if /I [%1] == [/?] goto Usage
14 if /I [%1] == [/help] goto Usage
16 REM CMD eats "=" on the argument list.
17 REM TODO: remove all -Property=Value type arguments here once we get rid of them in buildpipeline.
18 if /i "%1" == "-BuildArch" (set processedArgs=!processedArgs! %1=%2&set __MSBuildArgs=!__MSBuildArgs! /p:__BuildArch=%2&shift&shift&goto Arg_Loop)
19 if /i "%1" == "-BuildType" (set processedArgs=!processedArgs! %1=%2&set __MSBuildArgs=!__MSBuildArgs! /p:__BuildType=%2&shift&shift&goto Arg_Loop)
20 if /i "%1" == "-OfficialBuildId" (set processedArgs=!processedArgs! %1=%2&set __MSBuildArgs=!__MSBuildArgs! /p:OfficialBuildId=%2&shift&shift&goto Arg_Loop)
21 if /i "%1" == "--" (set processedArgs=!processedArgs! %1&shift)
23 REM handle any unprocessed arguments, assumed to go only after the processed arguments above
24 if [!processedArgs!]==[] (
25 set unprocessedArgs=%__args%
27 set unprocessedArgs=%__args%
28 for %%t in (!processedArgs!) do (
29 REM strip out already-processed arguments from unprocessedArgs
30 set unprocessedArgs=!unprocessedArgs:*%%t=!
36 call "%__ProjectDir%"\setup_vs_tools.cmd
38 REM setup_vs_tools.cmd will correctly echo error message.
39 if NOT '%ERRORLEVEL%' == '0' exit /b 1
41 call %__ProjectDir%/dotnet.cmd msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^
42 /p:__BuildOS=Windows_NT /flp:v=detailed;Append;LogFile=build-packages.log^
43 /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^
44 /p:PortableBuild=true %__ProjectDir%\src\.nuget\packages.builds^
45 /p:FilterToOSGroup=Windows_NT %__MSBuildArgs% %unprocessedArgs%
46 if NOT [!ERRORLEVEL!]==[0] (
47 echo ERROR: An error occurred while building packages, see build-packages.log for more details.
51 echo Done Building Packages.
56 echo Builds the NuGet packages from the binaries that were built in the Build product binaries step.
57 echo The following properties are required to define build architecture
58 echo -BuildArch=[architecture] -BuildType=[configuration]
59 echo Architecture can be x64, x86, arm, or arm64
60 echo Configuration can be Release, Debug, or Checked