Skip to content

Commit

Permalink
win,build: add arbitrary and binlog options
Browse files Browse the repository at this point in the history
This change adds a 'msbuild_arg' option to vcbuild.bat that can be used
to pass arbitrary flags to MSBuild.

It also adds a 'binlog' flag as a shortcut 'msbuild_arg' option to
enable binary logging to `%config%\node.binlog`. This is especially
convenient when debugging changes to the build system.

In the process of developing this change, the idea of adding 'setlocal'
to the beginning of the script was rejected since other scripts in this
repo rely on the exported environment variables. This change adds a
note describing this.

PR-URL: #25994
Reviewed-By: João Reis <reis@janeasystems.com>
  • Loading branch information
jkunkee authored and BethGriggs committed Apr 16, 2019
1 parent cc25f22 commit a762907
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion vcbuild.bat
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
@if not defined DEBUG_HELPER @ECHO OFF

:: Other scripts rely on the environment variables set in this script, so we
:: explicitly allow them to persist in the calling shell.
endlocal

if /i "%1"=="help" goto help
if /i "%1"=="--help" goto help
if /i "%1"=="-help" goto help
Expand Down Expand Up @@ -59,6 +63,7 @@ set no_cctest=
set cctest=
set openssl_no_asm=
set doc=
set extra_msbuild_args=^

:next-arg
if "%1"=="" goto args-done
Expand Down Expand Up @@ -131,6 +136,8 @@ if /i "%1"=="no-cctest" set no_cctest=1&goto arg-ok
if /i "%1"=="cctest" set cctest=1&goto arg-ok
if /i "%1"=="openssl-no-asm" set openssl_no_asm=1&goto arg-ok
if /i "%1"=="doc" set doc=1&goto arg-ok
if /i "%1"=="binlog" set extra_msbuild_args=%extra_msbuild_args% /binaryLogger:%config%\node.binlog&goto arg-ok
if /i "%1"=="msbuild_arg" set extra_msbuild_args=%extra_msbuild_args% %2&goto arg-ok-2

echo Error: invalid command line option `%1`.
exit /b 1
Expand Down Expand Up @@ -310,7 +317,7 @@ if "%target%"=="Build" (
if defined cctest set target="Build"
)
if "%target%"=="rename_node_bin_win" if exist "%config%\cctest.exe" del "%config%\cctest.exe"
msbuild node.sln %msbcpu% /t:%target% /p:Configuration=%config% /p:Platform=%msbplatform% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo
msbuild node.sln %msbcpu% /t:%target% /p:Configuration=%config% /p:Platform=%msbplatform% /clp:NoSummary;NoItemAndPropertyList;Verbosity=minimal /nologo %extra_msbuild_args%
if errorlevel 1 (
if not defined project_generated echo Building Node with reused solution failed. To regenerate project files use "vcbuild projgen"
goto exit
Expand Down

0 comments on commit a762907

Please sign in to comment.