commit | a91d39e76c0aa412b4490ca74697158ff7d726fd | [log] [tgz] |
---|---|---|
author | Alan Screen <awscreen@chromium.org> | Wed Feb 14 16:43:48 2024 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Feb 14 16:52:28 2024 |
tree | 38c0ad912019edf4da8cca806bd365b6b0381623 | |
parent | 854955d0260405621f57f935c700d1c23da20dd8 [diff] |
Add build_with_v8_embedder build override variable V8 builds need the ability to distinguish when V8 is being built standalone vs. embedded by another target. Using just `build_with_chromium` as such an indicator is insufficient, as there can be other embedders besides Chromium, such as PDFium. Introduce a build override variable is a first step towards decoupling this tie directly with Chromium. It will be followed by V8 utilizing the override variable, and finally by any other embedders (like PDFium) being able to set that in their builds. Bug: pdfium:2124 Change-Id: I48cfffb5afc4db346b4b683a0b7f04776cbef7a3 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5291676 Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Alan Screen <awscreen@chromium.org> Cr-Commit-Position: refs/heads/main@{#1260515} NOKEYCHECK=True GitOrigin-RevId: 35990ea269bc5f50b21a1f41142c3ad78ebd11af
This directory is used to allow different products to customize settings for repos that are DEPS'ed in or shared.
For example: V8 could be built on its own (in a “standalone” configuration), and it could be built as part of Chromium. V8 might define a top-level target, //v8:d8 (a simple executable), that should only be built in the standalone configuration. To figure out whether or not it should be in a standalone configuration, v8 can create a file, build_overrides/v8.gni, that contains a variable, build_standalone_d8 = true
. and import it (as import(“//build_overrides/v8.gni”) from its top-level BUILD.gn file.
Chromium, on the other hand, might not need to build d8, and so it would create its own build_overrides/v8.gni file, and in it set build_standalone_d8 = false
.
The two files should define the same set of variables, but the values can vary as appropriate to the needs of the two different builds.
The build.gni file provides a way for projects to override defaults for variables used in //build itself (which we want to be shareable between projects).
TODO(crbug.com/588513): Ideally //build_overrides and, in particular, //build_overrides/build.gni should go away completely in favor of some mechanism that can re-use other required files like //.gn, so that we don't have to keep requiring projects to create a bunch of different files to use GN.