summaryrefslogtreecommitdiffstats
path: root/build_overrides
diff options
context:
space:
mode:
authordpranke <dpranke@chromium.org>2015-10-12 23:20:33 -0700
committerCommit bot <commit-bot@chromium.org>2015-10-13 06:21:19 +0000
commitd4da5ab4987c2c22d96dcf8c4b3ac2449aa16c0f (patch)
tree125f2ec1dce6d8d5beed45329388dd1d982d9714 /build_overrides
parentdb54eaf0cb213a4495dc2e4264fab57515b0a9d4 (diff)
downloadchromium_src-d4da5ab4987c2c22d96dcf8c4b3ac2449aa16c0f.zip
chromium_src-d4da5ab4987c2c22d96dcf8c4b3ac2449aa16c0f.tar.gz
chromium_src-d4da5ab4987c2c22d96dcf8c4b3ac2449aa16c0f.tar.bz2
Move //build/module_args/v8.gni to //build_overrides.
The original intent of the build/module_args directory was to provide a place where different repos could customize settings as needed depending on their dependencies and needs. However, given that you can't really yet embed GN by just deps-ing in //build/config and //build/toolchain, you end up needing to deps-in all of build, and so there was no good way to have different settings per-repo in //build/module_args. This CL changes the approach such that we will have an additional top-level directory called //build_overrides, which is therefore separate from //build and can be properly customized. It is unfortunate that we need to use two top-level directories for GN, but we don't have a good alternative at this time. Once we can remove the GYP build and further clean up the structure and dependencies of //build we will hopefully be able to do better. R=brettw@chromium.org BUG=541791 Review URL: https://codereview.chromium.org/1397493004 Cr-Commit-Position: refs/heads/master@{#353690}
Diffstat (limited to 'build_overrides')
-rw-r--r--build_overrides/README.md20
-rw-r--r--build_overrides/v8.gni20
2 files changed, 40 insertions, 0 deletions
diff --git a/build_overrides/README.md b/build_overrides/README.md
new file mode 100644
index 0000000..d26312c
--- /dev/null
+++ b/build_overrides/README.md
@@ -0,0 +1,20 @@
+# Build overrides in GN
+
+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.
diff --git a/build_overrides/v8.gni b/build_overrides/v8.gni
new file mode 100644
index 0000000..4fc5f98
--- /dev/null
+++ b/build_overrides/v8.gni
@@ -0,0 +1,20 @@
+# Copyright 2015 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.
+
+if (is_android) {
+ import("//build/config/android/config.gni")
+}
+
+# TODO(sky): nuke this. Temporary while sorting out http://crbug.com/465456.
+enable_correct_v8_arch = false
+
+v8_use_external_startup_data = !(is_chromeos || is_win || is_ios)
+
+# V8 extras
+# Adding V8 extras files requires API owners review
+# Be sure to synchronize with build/common.gypi
+
+v8_extra_library_files = []
+v8_experimental_extra_library_files =
+ [ "../third_party/WebKit/Source/core/streams/ByteLengthQueuingStrategy.js" ]