This updates the debugging slow builds docs to give more details about
what NINJA_SUMMARIZE_BUILD=1 does, and how to interpret the weighted
time numbers.
It also adds a mention of tools/buildstate.py, and updates the
instructions for finding build information on the bots.
Bug: None
Change-Id: I3eb6900012a577569c0e123e176221bf8889b768
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4766017
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Auto-Submit: Bruce Dawson <brucedawson@chromium.org>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1181532}
gn can inform IDEs such VSCode to find Rust code. With this change,
IDEs are successfully informed of the location of the Rust standard
library.
This is a breaking change for gn args, in the case that you're using
an external Rust toolchain. Previously you needed to specify
rust_bin_dir; now you need to specify rust_sysroot_absolute, pointing
to the parent directory of whatever you previously specified.
It also removes the redundant 'use_unverified_rust_toolchain' Boolean
argument.
The DEPS change here is to absorb a revised CIPD package of the Rust
toolchain which has slightly different source code layout.
Bug: 1269992
Change-Id: Ieae64344f4f7589f75a53ad2d4e83d4a12b6305a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3280458
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Adrian Taylor <adetaylor@chromium.org>
Cr-Commit-Position: refs/heads/main@{#946561}
This provides the ability to add Rust components to Chromium. This is
experimental and won't affect production Chromium. This is the most
minimal possible addition: future CLs will handle more tooling, ability
to add third party crates, C++ interop etc.
Specifically, this CL contains:
* Global gn flags to enable Rust compilation (off by default) and to
enable contribution of Rust code into Chrome binaries (off by
default; currently unused anyway)
* Modifications to three gn toolchains (clang, Windows and Mac) to
trigger gn's built-in support for Rust tool invocations
* Reasonable default Rust compiler flags for various cases where we
set up C++ compiler flags (e.g. optimization, debug info)
* Some test binaries, built by default.
* Support for our existing C++ linker invocations to link Rust code into
their output binaries (more discussion below).
More on this last point. The Rust compiler (rustc) knows how to make
several different products - executables, shared objects, 'complete'
static libraries, and 'rlibs'. 'Complete' static libraries contain
everything required to link Rust code into non-Rust binaries, including
(for instance) the required parts of the Rust standard library. That
would be fine if we only ever expected a single Rust subsystem in
Chrome. But as we expect (eventually) several, we instead choose to
generate 'rlibs' and pass them into our C++ linker commands. (To link
multiple staticlibs would give us ODR violations on the Rust stdlib.)
'rlibs' are 'incomplete' and thus we have to take extra steps to include
the Rust standard library - that's in //build/rust std.
Change-Id: Ie0342bde51852ddc049e8d6a7950897b779904d2
Bug: 1069271
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2162136
Reviewed-by: Alex Gough <ajgo@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Adrian Taylor <adetaylor@chromium.org>
Cr-Commit-Position: refs/heads/main@{#917242}
Many spots using forward_variables_from(invoker, "*") were not
allowing these two variables to be set in outer scopes.
* Introduce a helper variable "EXPLICIT_FORWARDS" for use with the
recommended pattern of:
forward_variables_from(invoker, "*", [ "testonly", "visibility" ])
forward_variables_from(invoker, [ "testonly", "visibility" ])
* Ensures this pattern is used in android templates, test.gni,
and BUILDCONFIG.gn
* Documents this pattern in writing_gn_templates.md
* Adds a PRESUBMIT.py for it
* Fixes visibility of a few blink targets now that test()
respects it.
Bug: 862232
Change-Id: Ib71dbf34be76131fc749c721aea856e1146bc69a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2454427
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@google.com>
Cr-Commit-Position: refs/heads/master@{#830678}