| @echo off |
| :: Copyright 2017 The Chromium Authors. All rights reserved. |
| :: Use of this source code is governed by a BSD-style license that can be |
| :: found in the LICENSE file. |
| |
| setlocal |
| |
| set scriptdir=%~dp0 |
| |
| if not defined AUTONINJA_BUILD_ID ( |
| :: Set unique build ID. |
| FOR /f "usebackq tokens=*" %%a in (`%scriptdir%python-bin\python3.bat -c "import uuid; print(uuid.uuid4())"`) do set AUTONINJA_BUILD_ID=%%a |
| ) |
| |
| :: If a build performance summary has been requested then also set NINJA_STATUS |
| :: to trigger more verbose status updates. In particular this makes it possible |
| :: to see how quickly process creation is happening - often a critical clue on |
| :: Windows. The trailing space is intentional. |
| if "%NINJA_SUMMARIZE_BUILD%" == "1" set NINJA_STATUS=[%%r processes, %%f/%%t @ %%o/s : %%es ] |
| |
| :loop |
| IF NOT "%1"=="" ( |
| :: Tell goma or reclient to not do network compiles. |
| IF "%1"=="--offline" ( |
| SET GOMA_DISABLED=1 |
| SET RBE_remote_disabled=1 |
| ) |
| IF "%1"=="-o" ( |
| SET GOMA_DISABLED=1 |
| SET RBE_remote_disabled=1 |
| ) |
| SHIFT |
| GOTO :loop |
| ) |
| |
| :: Execute whatever is printed by autoninja.py. |
| :: Also print it to reassure that the right settings are being used. |
| :: Don't use vpython - it is too slow to start. |
| :: Don't use python3 because it doesn't work in git bash on Windows and we |
| :: should be consistent between autoninja.bat and the autoninja script used by |
| :: git bash. |
| FOR /f "usebackq tokens=*" %%a in (`%scriptdir%python-bin\python3.bat %scriptdir%autoninja.py "%*"`) do echo %%a & %%a |
| @if errorlevel 1 goto buildfailure |
| |
| :: Use call to invoke python script here, because we use python via python3.bat. |
| @if "%NINJA_SUMMARIZE_BUILD%" == "1" call %scriptdir%python-bin\python3.bat %scriptdir%post_build_ninja_summary.py %* |
| @call %scriptdir%python-bin\python3.bat %scriptdir%ninjalog_uploader_wrapper.py --cmdline %* |
| |
| exit /b %ERRORLEVEL% |
| :buildfailure |
| |
| @call %scriptdir%python-bin\python3.bat %scriptdir%ninjalog_uploader_wrapper.py --cmdline %* |
| |
| :: Return an error code of 1 so that if a developer types: |
| :: "autoninja chrome && chrome" then chrome won't run if the build fails. |
| cmd /c exit 1 |