mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
When NINJA_SUMMARIZE_BUILD=1 then autoninja prints a summary of build performance at the end. This change makes it so that ninja prints more detailed build statistics during the build. In particular, slow process creation is a common but difficult to see bottleneck. This change makes it so that if NINJA_SUMMARIZE_BUILD=1 then the number of running build processes will be displayed. Bug: 787983 Change-Id: Ic0907e23e7f762e23e4795059b37085e0cb8c4ea Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1582802 Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
34 lines
1.4 KiB
Batchfile
Executable File
34 lines
1.4 KiB
Batchfile
Executable File
@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
|
|
|
|
REM Set unique build ID.
|
|
FOR /f "usebackq tokens=*" %%a in (`python -c "import uuid; print uuid.uuid4()"`) do set AUTONINJA_BUILD_ID=%%a
|
|
|
|
REM If a build performance summary has been requested then also set NINJA_STATUS
|
|
REM to trigger more verbose status updates. In particular this makes it possible
|
|
REM to see how quickly process creation is happening - often a critical clue on
|
|
REM Windows. The trailing space is intentional.
|
|
if "%NINJA_SUMMARIZE_BUILD%" == "1" set NINJA_STATUS=[%%r processes, %%f/%%t @ %%o/s : %%es ]
|
|
|
|
REM Execute whatever is printed by autoninja.py.
|
|
REM Also print it to reassure that the right settings are being used.
|
|
FOR /f "usebackq tokens=*" %%a in (`python %~dp0autoninja.py "%*"`) do echo %%a & %%a
|
|
@if errorlevel 1 goto buildfailure
|
|
|
|
REM Use call to invoke python script here, because we use python via python.bat.
|
|
@if "%NINJA_SUMMARIZE_BUILD%" == "1" call python.bat %~dp0post_build_ninja_summary.py %*
|
|
@call python.bat %~dp0ninjalog_uploader_wrapper.py --cmdline %*
|
|
|
|
exit /b
|
|
:buildfailure
|
|
|
|
@call python.bat %~dp0ninjalog_uploader_wrapper.py --cmdline %*
|
|
|
|
REM Return an error code of 1 so that if a developer types:
|
|
REM "autoninja chrome && chrome" then chrome won't run if the build fails.
|
|
cmd /c exit 1
|