Nullable: String (#23450)
[platform/upstream/coreclr.git] / build-packages.cmd
1 @if not defined _echo @echo off
2 setlocal EnableDelayedExpansion
3
4 set "__ProjectDir=%~dp0"
5
6 set "__args=%*"
7 set processedArgs=
8 set unprocessedArgs=
9 set __MSBuildArgs=
10
11 :Arg_Loop
12 if "%1" == "" goto ArgsDone
13 if /I [%1] == [/?] goto Usage
14 if /I [%1] == [/help] goto Usage
15
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)
22
23 REM handle any unprocessed arguments, assumed to go only after the processed arguments above
24 if [!processedArgs!]==[] (
25    set unprocessedArgs=%__args%
26 ) else (
27    set unprocessedArgs=%__args%
28    for %%t in (!processedArgs!) do (
29    REM strip out already-processed arguments from unprocessedArgs
30    set unprocessedArgs=!unprocessedArgs:*%%t=!
31    )
32 )
33
34 :ArgsDone
35
36 call "%__ProjectDir%"\setup_vs_tools.cmd
37
38 REM setup_vs_tools.cmd will correctly echo error message.
39 if NOT '%ERRORLEVEL%' == '0' exit /b 1
40
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.
48   exit /b 1
49 )
50
51 echo Done Building Packages.
52 exit /b
53
54 :Usage
55 echo.
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
61 exit /b