Simplify build
R=aerotwist@chromium.org
Change-Id: I9588e519fd491cf116517f6d4971d44ee64c2dfc
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1905826
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
diff --git a/.gn b/.gn
index 5db68ae..246faa5 100644
--- a/.gn
+++ b/.gn
@@ -6,10 +6,8 @@
# tree and to set startup options. For documentation on the values set in this
# file, run "gn help dotfile" at the command line.
-import("//build/dotfile_settings.gni")
-
# The location of the build configuration file.
-buildconfig = "//build/config/BUILDCONFIG.gn"
+buildconfig = "//build_overrides/BUILDCONFIG.gn"
# These are the targets to check headers for by default. The files in targets
# matching these patterns (see "gn help label_pattern" for format) will have
@@ -17,11 +15,6 @@
# "gn check" or "gn gen --check".
check_targets = [ "*" ]
-# These are the list of GN files that run exec_script. This whitelist exists
-# to force additional review for new uses of exec_script, which is strongly
-# discouraged except for gypi_to_gn calls.
-exec_script_whitelist = build_dotfile_settings.exec_script_whitelist
-
default_args = {
# Enable by default to provide unbundled resource files.
debug_devtools = true
diff --git a/BUILD.gn b/BUILD.gn
index bda00a5..a455a83 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -2,7 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//build/config/features.gni")
import("//third_party/blink/public/public_features.gni")
import("//third_party/blink/renderer/core/core.gni")
diff --git a/DEPS b/DEPS
index 8eb146d..4075a97 100644
--- a/DEPS
+++ b/DEPS
@@ -6,18 +6,12 @@
'build_url': 'https://chromium.googlesource.com/chromium/src/build.git',
'build_revision': '61ec5dc258b9fbc17504d1276e0c3eaf4656e372',
- 'buildtools_url': 'https://chromium.googlesource.com/chromium/src/buildtools.git',
- 'buildtools_revision': '140e4d7c45ffb55ce5dc4d11a0c3938363cd8257',
-
'depot_tools_url': 'https://chromium.googlesource.com/chromium/tools/depot_tools',
'depot_tools_revision': '512f92b73181c8e1d99d38cd9b73fbf41151636a',
'inspector_protocol_url': 'https://chromium.googlesource.com/deps/inspector_protocol',
'inspector_protocol_revision': 'd2fc9b958e1eeb1e956f3e2208afa9923bdc9b67',
- 'clang_format_url': 'https://chromium.googlesource.com/chromium/llvm-project/cfe/tools/clang-format.git',
- 'clang_format_revision': 'bb994c6f067340c1135eb43eed84f4b33cfa7397',
-
# GN CIPD package version.
'gn_version': 'git_revision:ad9e442d92dcd9ee73a557428cfc336b55cbd533',
@@ -31,12 +25,6 @@
allowed_hosts = [ 'chromium.googlesource.com' ]
deps = {
- 'devtools-frontend/buildtools/clang_format/script':
- Var('clang_format_url') + '@' + Var('clang_format_revision'),
-
- 'devtools-frontend/buildtools':
- Var('buildtools_url') + '@' + Var('buildtools_revision'),
-
'devtools-frontend/buildtools/linux64': {
'packages': [
{
@@ -128,53 +116,6 @@
],
},
- {
- 'name': 'sysroot_x64',
- 'pattern': '.',
- 'condition': 'checkout_linux and checkout_x64',
- 'action': ['python',
- 'devtools-frontend/build/linux/sysroot_scripts/install-sysroot.py',
- '--arch=x64'],
- },
-
- # Pull clang-format binaries using checked-in hashes.
- {
- 'name': 'clang_format_win',
- 'pattern': '.',
- 'condition': 'host_os == "win"',
- 'action': [ 'python',
- 'devtools-frontend/third_party/depot_tools/download_from_google_storage.py',
- '--no_resume',
- '--no_auth',
- '--bucket', 'chromium-clang-format',
- '-s', 'devtools-frontend/buildtools/win/clang-format.exe.sha1',
- ],
- },
- {
- 'name': 'clang_format_mac',
- 'pattern': '.',
- 'condition': 'host_os == "mac"',
- 'action': [ 'python',
- 'devtools-frontend/third_party/depot_tools/download_from_google_storage.py',
- '--no_resume',
- '--no_auth',
- '--bucket', 'chromium-clang-format',
- '-s', 'devtools-frontend/buildtools/mac/clang-format.sha1',
- ],
- },
- {
- 'name': 'clang_format_linux',
- 'pattern': '.',
- 'condition': 'host_os == "linux"',
- 'action': [ 'python',
- 'devtools-frontend/third_party/depot_tools/download_from_google_storage.py',
- '--no_resume',
- '--no_auth',
- '--bucket', 'chromium-clang-format',
- '-s', 'devtools-frontend/buildtools/linux64/clang-format.sha1',
- ],
- },
-
# Pull chromium from common storage
{
'name': 'chromium_linux',
diff --git a/build_overrides/BUILDCONFIG.gn b/build_overrides/BUILDCONFIG.gn
new file mode 100644
index 0000000..cee7a95
--- /dev/null
+++ b/build_overrides/BUILDCONFIG.gn
@@ -0,0 +1,85 @@
+# Copyright (c) 2019 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.
+
+# =============================================================================
+# WHAT IS THIS FILE?
+# =============================================================================
+#
+# This is the master GN build configuration. This file is loaded after the
+# build args (args.gn) for the build directory and after the toplevel ".gn"
+# file (which points to this file as the build configuration).
+#
+# This particular version of BUILDCONFIG.gn is derived from the original
+# at //build/config/BUILDCONFIG.gn, but does not include many of the toolchain
+# settings that are relevant for compiling C++.
+
+# =============================================================================
+# BUILD FLAGS
+# =============================================================================
+
+declare_args() {
+ # Set to enable the official build level of optimization. This has nothing
+ # to do with branding, but enables an additional level of optimization above
+ # release (!is_debug). This might be better expressed as a tri-state
+ # (debug, release, official) but for historical reasons there are two
+ # separate flags.
+ is_official_build = false
+
+ # Whether we're a traditional desktop unix.
+ is_desktop_linux = current_os == "linux"
+
+ # Set to true when compiling with the Clang compiler.
+ is_clang = true
+
+ # Allows the path to a custom target toolchain to be injected as a single
+ # argument, and set as the default toolchain.
+ custom_toolchain = ""
+
+ # This should not normally be set as a build argument. It's here so that
+ # every toolchain can pass through the "global" value via toolchain_args().
+ host_toolchain = ""
+
+ # DON'T ADD MORE FLAGS HERE. Read the comment above.
+}
+
+declare_args() {
+ # Debug build. Enabling official builds automatically sets is_debug to false.
+ is_debug = !is_official_build
+}
+
+# ==============================================================================
+# TOOLCHAIN SETUP
+# ==============================================================================
+#
+# We don't actually compile anything, so taking the Linux X64 toolchain suffices.
+set_default_toolchain("//build/toolchain/linux:x64")
+
+# =============================================================================
+# OS DEFINITIONS
+# =============================================================================
+#
+# We set these various is_FOO booleans for convenience in writing OS-based
+# conditions.
+#
+# - is_android, is_chromeos, is_ios, and is_win should be obvious.
+# - is_mac is set only for desktop Mac. It is not set on iOS.
+# - is_posix is true for mac and any Unix-like system (basically everything
+# except Windows).
+# - is_linux is true for desktop Linux and ChromeOS, but not Android (which is
+# generally too different despite being based on the Linux kernel).
+#
+# Do not add more is_* variants here for random lesser-used Unix systems like
+# aix or one of the BSDs. If you need to check these, just check the
+# current_os value directly.
+
+is_android = current_os == "android"
+is_chromeos = current_os == "chromeos"
+is_fuchsia = current_os == "fuchsia"
+is_ios = current_os == "ios"
+is_linux = current_os == "chromeos" || current_os == "linux"
+is_mac = current_os == "mac"
+is_nacl = current_os == "nacl"
+is_win = current_os == "win" || current_os == "winuwp"
+
+is_posix = !is_win && !is_fuchsia