forked from dotnet/project-system
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.cmd
66 lines (56 loc) · 2.33 KB
/
build.cmd
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
@echo off
setlocal enabledelayedexpansion
set BatchFile=%0
set Root=%~dp0
set BuildConfiguration=Debug
set MSBuildTarget=Build
set NodeReuse=true
set DeveloperCommandPrompt=%VS150COMNTOOLS%\VsDevCmd.bat
set MSBuildAdditionalArguments=/m
:ParseArguments
if "%1" == "" goto :DoneParsing
if /I "%1" == "/?" call :Usage && exit /b 1
if /I "%1" == "/debug" set BuildConfiguration=Debug&&shift&& goto :ParseArguments
if /I "%1" == "/release" set BuildConfiguration=Release&&shift&& goto :ParseArguments
if /I "%1" == "/rebuild" set MSBuildTarget=Rebuild&&shift&& goto :ParseArguments
if /I "%1" == "/no-node-reuse" set NodeReuse=false&&shift&& goto :ParseArguments
if /I "%1" == "/no-multi-proc" set MSBuildAdditionalArguments=&&shift&& goto :ParseArguments
call :Usage && exit /b 1
:DoneParsing
if not exist "%DeveloperCommandPrompt%" (
echo In order to build this repository, you need Visual Studio "15" Preview installed.
echo.
echo Visit this page to download:
echo.
echo http://go.microsoft.com/fwlink/?LinkId=746567
exit /b 1
)
if not exist "%VSSDK150Install%" (
echo In order to build this repository, you need to modify your Visual Studio installation to include "Visual Studio Extensibility Tools".
exit /b 1
)
call "%DeveloperCommandPrompt%" || goto :BuildFailed
set BinariesDirectory=%Root%bin\%BuildConfiguration%\
set LogFile=%BinariesDirectory%Build.log
if not exist "%BinariesDirectory%" mkdir "%BinariesDirectory%" || goto :BuildFailed
msbuild /nologo /nodeReuse:%NodeReuse% /consoleloggerparameters:Verbosity=minimal /fileLogger /fileloggerparameters:LogFile="%LogFile%";verbosity=diagnostic /t:"%MSBuildTarget%" /p:Configuration="%BuildConfiguration%" "%Root%build\build.proj" %MSBuildAdditionalArguments%
if ERRORLEVEL 1 (
echo.
echo Build failed, for full log see %LogFile%.
exit /b 1
)
echo.
echo Build completed successfully, for full log see %LogFile%
exit /b 0
:Usage
echo Usage: %BatchFile% [/debug^|/release] [/rebuild]
echo.
echo /debug Perform debug build (default)
echo /release Perform release build
echo /rebuild Perform a clean, then build
echo /no-node-reuse Run msbuild with /nodeReuse=false, which affects performance
echo /no-multi-proc No multi-proc build, useful for diagnosing build logs
goto :eof
:BuildFailed
echo Build failed with ERRORLEVEL %ERRORLEVEL%
exit /b 1