From 0efb5853d6217374dc1fb8d528a72053e1f2a03e Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Wed, 25 Jul 2018 13:39:37 -0700 Subject: [PATCH] build: [gn] centralize GN args under build/args/*.gn Devs can still locally override or add settings by adding lines after the `import` statement in args.gn. This will help make sure that everyone has a common set of build args, and will allow us to update everyone's build args in git. --- .circleci/config.yml | 12 +----------- build/args/all.gn | 10 ++++++++++ build/args/debug.gn | 4 ++++ build/args/release.gn | 4 ++++ docs/development/build-instructions-gn.md | 2 +- 5 files changed, 20 insertions(+), 12 deletions(-) create mode 100644 build/args/all.gn create mode 100644 build/args/debug.gn create mode 100644 build/args/release.gn diff --git a/.circleci/config.yml b/.circleci/config.yml index cbc2faea763a..3e663d1b625c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -354,17 +354,7 @@ jobs: echo 'export SCCACHE_WRAPPER="'`pwd`'/libchromiumcontent/tools/sccache/aad2120/linux/sccache"' >> $BASH_ENV echo 'export CHROMIUM_BUILDTOOLS_PATH=`pwd`/buildtools' >> $BASH_ENV source $BASH_ENV - mkdir out/Default - cat > out/Default/args.gn <<-EOF - cc_wrapper = "$SCCACHE_WRAPPER" - root_extra_deps = [ "//electron" ] - is_electron_build = true - is_component_build = true - use_jumbo_build = true - v8_promise_internal_field_count = 1 - v8_typed_array_max_size_in_heap = 0 - EOF - gn gen out/Default + gn gen out/Default --args='import("//electron/build/args/debug.gn")' - run: name: Ninja build command: | diff --git a/build/args/all.gn b/build/args/all.gn new file mode 100644 index 000000000000..41e11de62c74 --- /dev/null +++ b/build/args/all.gn @@ -0,0 +1,10 @@ +is_electron_build = true +is_electron_gn_build = true +root_extra_deps = [ "//electron" ] + +v8_promise_internal_field_count = 1 +v8_typed_array_max_size_in_heap = 0 + +enable_widevine = true +proprietary_codecs = true +ffmpeg_branding = "Chrome" diff --git a/build/args/debug.gn b/build/args/debug.gn new file mode 100644 index 000000000000..44ba86b33208 --- /dev/null +++ b/build/args/debug.gn @@ -0,0 +1,4 @@ +import("all.gn") +is_debug = true +is_component_build = true +use_jumbo_build = true diff --git a/build/args/release.gn b/build/args/release.gn new file mode 100644 index 000000000000..5951aab6a977 --- /dev/null +++ b/build/args/release.gn @@ -0,0 +1,4 @@ +import("all.gn") +is_component_build = false +is_official_build = true +is_component_ffmpeg = true diff --git a/docs/development/build-instructions-gn.md b/docs/development/build-instructions-gn.md index 233939ab0767..7857e57dcc46 100644 --- a/docs/development/build-instructions-gn.md +++ b/docs/development/build-instructions-gn.md @@ -38,7 +38,7 @@ $ gclient sync --with_branch_heads --with_tags ```sh $ cd src $ export CHROMIUM_BUILDTOOLS_PATH=`pwd`/buildtools -$ gn gen out/Default --args='root_extra_deps=["//electron"] is_electron_build=true is_component_build=true use_jumbo_build=true v8_promise_internal_field_count=1 v8_typed_array_max_size_in_heap=0' +$ gn gen out/Default --args='import("//electron/build/args/debug.gn")' ``` This will generate all the ninja files needed for the build. You shouldn't have