blob: 32e9e4f8eaab268b4872194b5e26d522d5ea0d28 [file] [log] [blame]
::-------------------------------------------------------------------------------------------------------
:: Copyright (C) Microsoft. All rights reserved.
:: Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
::-------------------------------------------------------------------------------------------------------
@echo off
setlocal
if not "%JENKINS_BUILD%" == "True" (
echo This script should be run under a Jenkins Build environment
exit /b 2
)
if "%_ENTRY_SCRIPT_NAME%"=="" (
set _ENTRY_SCRIPT_NAME=%0
)
set "_msbuildArgs="
:ContinueArgParse
if not [%1]==[] (
:: _BuildArch
if [%1]==[x86] (
set _BuildArch=x86
goto :ContinueArgParseEnd
) else if [%1]==[x64] (
set _BuildArch=x64
goto :ContinueArgParseEnd
) else if [%1]==[arm] (
set _BuildArch=arm
goto :ContinueArgParseEnd
)
:: _BuildArch (deprecated name)
if [%1]==[amd64] (
set _BuildArch=x64
goto :ContinueArgParseEnd
)
:: _BuildType (new names)
if [%1]==[debug] (
set _BuildType=chk
goto :ContinueArgParseEnd
) else if [%1]==[test] (
set _BuildType=test
goto :ContinueArgParseEnd
) else if [%1]==[release] (
set _BuildType=fre
goto :ContinueArgParseEnd
)
:: _BuildType (old names)
if [%1]==[chk] (
set _BuildType=chk
goto :ContinueArgParseEnd
) else if [%1]==[fre] (
set _BuildType=fre
goto :ContinueArgParseEnd
)
:: _targets
if /i [%1] EQU [/c] (
set _targets=/t:Clean,Build
goto :ContinueArgParseEnd
)
:: DEFAULT - add any other params to %_msBuildArgs%
:: _msbuildArgs
if [%1] NEQ [] (
set _msbuildArgs=%_msbuildArgs% %1
goto :ContinueArgParseEnd
)
:ContinueArgParseEnd
shift
goto :ContinueArgParse
)
if "%_BuildArch%"=="" (
goto :invalidBuildArch
)
if "%_BuildType%"=="" (
goto :invalidBuildType
)
if "%_LoggingParams%" EQU "" (
set _LoggingParams=/fl1 /flp1:logfile=build_%_BuildArch%%_BuildType%.log;verbosity=normal /fl2 /flp2:logfile=build_%_BuildArch%%_BuildType%.err;errorsonly /fl3 /flp3:logfile=build_%_BuildArch%%_BuildType%.wrn;warningsonly
)
set _ChakraBuildConfig=
if "%_BuildType%" EQU "chk" (
set _ChakraBuildConfig=Debug
) else if "%_BuildType%" EQU "fre" (
set _ChakraBuildConfig=Release
) else if "%_BuildType%" EQU "test" (
set _ChakraBuildConfig=Test
) else (
echo WARNING: Unknown build type '%_BuildType%'
)
set "_msbuildProj="
set _ChakraSolution=%REPO_ROOT%\Build\Chakra.Core.sln
set _ChakraConfiguration=all
set _CoreBuild=1
if "%_CoreBuild%" EQU "0" (
set _ChakraBuildConfig=%_ChakraConfiguration%-%_ChakraBuildConfig%
)
echo MSBuildArgs are %_msBuildArgs%
echo msbuild %_msBuildArgs% /m /p:Configuration=%_ChakraBuildConfig% /p:Platform=%_BuildArch% %_ChakraSolution% %_msbuildProj% %_LoggingParams% %_targets% /verbosity:minimal /nr:false
msbuild %_msBuildArgs% /m /p:Configuration=%_ChakraBuildConfig% /p:Platform=%_BuildArch% %_ChakraSolution% %_msbuildProj% %_LoggingParams% %_targets% /verbosity:minimal /nr:false
goto :end
:: ============================================================================
:: Invald Build Arch
:: ============================================================================
:invalidBuildArch
echo None of the parameters were a valid build architecture. Please specify both architecture and type.
goto :examples
:: ============================================================================
:: Invald Build Type
:: ============================================================================
:invalidBuildType
echo None of the parameters were a valid build type. Please specify both architecture and type.
goto :examples
:: ============================================================================
:: Examples
:: ============================================================================
:examples
echo Examples:
echo.
echo %_ENTRY_SCRIPT_NAME% x86 debug
echo %_ENTRY_SCRIPT_NAME% x86 test
echo %_ENTRY_SCRIPT_NAME% x86 release
echo.
echo %_ENTRY_SCRIPT_NAME% x64 debug
echo %_ENTRY_SCRIPT_NAME% x64 test
echo %_ENTRY_SCRIPT_NAME% x64 release
goto :end
:: ============================================================================
:: Epilogue of script (cleanup)
:: ============================================================================
:end
endlocal