-
Notifications
You must be signed in to change notification settings - Fork 61
Expand file tree
/
Copy pathbuild.cmd
More file actions
165 lines (144 loc) · 4.93 KB
/
build.cmd
File metadata and controls
165 lines (144 loc) · 4.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
@echo Off
set EXIT_CODE=0
set SCRIPT_DIR=%~dp0
set SCRIPT_DIR=%SCRIPT_DIR:~0,-1%
set BUILD_CONFIGURATION=
set BUILD_FLAGS=
set BUILD_VERSION=
set BUILD_ALL=true
set BUILD_LINUX_X64=false
set BUILD_LINUX_ARM64=false
set BUILD_WIN_X64=false
set BUILD_WIN_ARM64=false
set VC_SOLUTION_DIR=%SCRIPT_DIR%\src\VirtualClient
if /i "%~1" == "/?" Goto :Usage
if /i "%~1" == "-?" Goto :Usage
if /i "%~1" == "--help" Goto :Usage
for %%a in (%*) do (
if /i "%%a" == "--trim" set BUILD_FLAGS=-p:PublishTrimmed=true
if /i "%%a" == "--linux-x64" (
set BUILD_LINUX_X64=true
set BUILD_ALL=false
)
if /i "%%a" == "--linux-arm64" (
set BUILD_LINUX_ARM64=true
set BUILD_ALL=false
)
if /i "%%a" == "--win-x64" (
set BUILD_WIN_X64=true
set BUILD_ALL=false
)
if /i "%%a" == "--win-arm64" (
set BUILD_WIN_ARM64=true
set BUILD_ALL=false
)
)
rem The default build version is defined in the repo VERSION file.
set /p BUILD_VERSION=<%SCRIPT_DIR%\VERSION
if defined VCBuildVersion (
echo:
echo Using 'VCBuildVersion' = %VCBuildVersion%
set BUILD_VERSION=%VCBuildVersion%
)
set BUILD_CONFIGURATION=Release
if defined VCBuildConfiguration (
echo:
echo Using 'VCBuildConfiguration' = %VCBuildConfiguration%
set BUILD_CONFIGURATION=%VCBuildConfiguration%
)
echo:
echo **********************************************************************
echo Build Version : %BUILD_VERSION%
echo Repo Root : %SCRIPT_DIR%
echo Configuration : %BUILD_CONFIGURATION%
echo Flags : %BUILD_FLAGS%
echo **********************************************************************
echo:
echo [Build Solution]
echo -------------------------------------------------------
REM We build the AnyCPU .dlls with Debug configuration to support extensions debugging for
REM external users and partner teams.
echo:
echo !!!
echo !!! Note that the solution is be built with 'Debug' configuration in order to support a better debugging experience for extensions development.
echo !!!
echo:
call dotnet build "%VC_SOLUTION_DIR%\VirtualClient.sln" -c Debug -v Detailed ^
-p:AssemblyVersion=%BUILD_VERSION% && echo: || Goto :Error
if /i "%BUILD_ALL%" == "true" (
set BUILD_LINUX_X64=true
set BUILD_LINUX_ARM64=true
set BUILD_WIN_X64=true
set BUILD_WIN_ARM64=true
)
if /i "%BUILD_LINUX_X64%" == "true" (
echo:
echo [Build Virtual Client: linux-x64]
echo ----------------------------------------------------------------------
call dotnet publish "%VC_SOLUTION_DIR%\VirtualClient.Main\VirtualClient.Main.csproj" -r linux-x64 -c %BUILD_CONFIGURATION% -v Detailed --self-contained ^
-p:AssemblyVersion=%BUILD_VERSION% -p:InvariantGlobalization=true %BUILD_FLAGS% && echo: || Goto :Error
)
if /i "%BUILD_LINUX_ARM64%" == "true" (
echo:
echo [Build Virtual Client: linux-arm64]
echo ----------------------------------------------------------------------
call dotnet publish "%VC_SOLUTION_DIR%\VirtualClient.Main\VirtualClient.Main.csproj" -r linux-arm64 -c %BUILD_CONFIGURATION% -v Detailed --self-contained ^
-p:AssemblyVersion=%BUILD_VERSION% -p:InvariantGlobalization=true %BUILD_FLAGS% && echo: || Goto :Error
)
if /i "%BUILD_WIN_X64%" == "true" (
echo:
echo [Build Virtual Client: win-x64]
echo ----------------------------------------------------------------------
call dotnet publish "%VC_SOLUTION_DIR%\VirtualClient.Main\VirtualClient.Main.csproj" -r win-x64 -c %BUILD_CONFIGURATION% -v Detailed --self-contained ^
-p:AssemblyVersion=%BUILD_VERSION% %BUILD_FLAGS% && echo: || Goto :Error
)
if /i "%BUILD_WIN_ARM64%" == "true" (
echo:
echo [Build Virtual Client: win-arm64]
echo ----------------------------------------------------------------------
call dotnet publish "%VC_SOLUTION_DIR%\VirtualClient.Main\VirtualClient.Main.csproj" -r win-arm64 -c %BUILD_CONFIGURATION% -v Detailed --self-contained ^
-p:AssemblyVersion=%BUILD_VERSION% %BUILD_FLAGS% && echo: || Goto :Error
)
Goto :End
:Usage
echo:
echo:
echo Builds the source code in the repo.
echo:
echo Usage:
echo ---------------------
echo build.cmd [--win-x64] [--win-arm64] [--linux-x64] [--linux-arm64] [--trim]
echo:
echo Examples:
echo ---------------------
echo # Build all targets:
echo %SCRIPT_DIR%^> build.cmd
echo:
echo # Build with specific version and Debug configuration:
echo set VCBuildVersion=2.1.0
echo set VCBuildConfiguration=Debug
echo %SCRIPT_DIR%^> build.cmd
echo:
echo # Build only for Windows x64
echo %SCRIPT_DIR%^> build.cmd --win-x64
echo:
echo # Build for Linux ARM64 and Windows x64
echo %SCRIPT_DIR%^> build.cmd --linux-arm64 --win-x64
Goto :Finish
:Error
set EXIT_CODE=%ERRORLEVEL%
:End
REM Reset environment variables
set BUILD_FLAGS=
set BUILD_CONFIGURATION=
set BUILD_VERSION=
set SCRIPT_DIR=
set VC_SOLUTION_DIR=
set BUILD_ALL=
set BUILD_LINUX_X64=
set BUILD_LINUX_ARM64=
set BUILD_WIN_X64=
set BUILD_WIN_ARM64=
echo Build Stage Exit Code: %EXIT_CODE%
:Finish
exit /B %EXIT_CODE%