Skip to content

Commit

Permalink
Hook up content/browser compile in GN build.
Browse files Browse the repository at this point in the history
I've started changing the way grit headers are included so the include path is relative to the root gen path (liek internal Google does). This also means we don't accumulate another implicit include path for every grit target in the build.

Updates the grit target a bit so that it also includes the generated id file as a dependency, since if this changes everything will need to be re-run.

This adds a bunch of tracing targets required by the content browser build

TBR=scottmg

Review URL: https://codereview.chromium.org/335693004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277124 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
brettw@chromium.org committed Jun 13, 2014
1 parent 2e3c2e9 commit 9786502
Show file tree
Hide file tree
Showing 13 changed files with 536 additions and 38 deletions.
3 changes: 2 additions & 1 deletion BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ group("root") {
"//components/translate:translate_core_browser",
"//components/translate:translate_core_common",
"//components/url_matcher",
#"//content/public/browser", # Exists but doesn't build yet.
"//content/public/browser",
"//content/public/child",
"//content/public/common",
"//content/public/renderer",
Expand Down Expand Up @@ -134,6 +134,7 @@ group("root") {
if (is_android) {
deps -= [
"//cc",
"//content/public/browser",
"//content/public/common",
"//content/public/renderer",
"//dbus",
Expand Down
3 changes: 3 additions & 0 deletions build/common.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -2361,6 +2361,9 @@
# Temporary suppression until Blink code can be removed.
'BLINK_SCALE_FILTERS_AT_RECORD_TIME',
],
'include_dirs': [
'<(SHARED_INTERMEDIATE_DIR)',
],
'conditions': [
['(OS=="mac" or OS=="ios") and asan==1', {
'dependencies': [
Expand Down
38 changes: 30 additions & 8 deletions content/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,37 @@ config("libjingle_stub_config") {
}
}

# This config is a placeholder to set up the V8 include path while Blink is
# being worked on. Some targets include blink headers which include "v8.h",
# expecting //v8/include to be on the include search path. We need to track
# this down and set the include paths properly.
config("v8_stub_config") {
include_dirs = [ "//v8/include" ]
}

config("widevine_stub_config") {
# The real implementation does a copy rule to copy the header to the gen dir.
include_dirs = [ "//third_party/widevine/cdm" ]
}

# Sets up include dirs while webrtc is being converted to GN.
# TODO(GYP) remove when webrtc is ready.
config("webrtc_stub_config") {
defines = [ "WEBRTC_CHROMIUM_BUILD" ]
include_dirs = [
"//third_party/webrtc/overrides", # Must be first.
"//third_party",
]

if (is_mac) {
defines += [ "WEBRTC_MAC" ]
} else if (is_win) {
defines += [ "WEBRTC_WIN" ]
} else if (is_linux) {
defines += [ "WEBRTC_LINUX" ]
} else if (is_ios) {
defines += [ "WEBRTC_MAC", "WEBRTC_IOS" ]
} else if (is_android) {
defines += [ "WEBRTC_LINUX", "WEBRTC_ANDROID" ]
import("//build/config/crypto.gni")
if (use_openssl) {
defines += [ "WEBRTC_ANDROID_OPENSLEQS" ]
}
}

if (is_posix) {
defines += [ "WEBRTC_POSIX" ]
}
}
54 changes: 34 additions & 20 deletions content/browser/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ source_set("browser") {
defines = []
libs = []
ldflags = []

# Shared deps. See also non-iOS deps below.
deps = [
"//base",
Expand Down Expand Up @@ -84,14 +84,17 @@ source_set("browser") {
"//content/browser/devtools:resources",
"//content/common:mojo_bindings",
"//cc",
"//cc:surfaces",
"//cc:cc_surfaces",
"//mojo/public/cpp/bindings",
"//mojo/public/interfaces/service_provider:service_provider",
"//mojo/public/js/bindings",
"//net:http_server",
"//third_party/icu",
"//third_party/leveldatabase",
"//third_party/libyuv",
"//ui/resources",
"//ui/surface",
"//ui/webui/resources",
"//webkit:resources",
"//webkit:strings",
"//webkit/browser:storage",
Expand All @@ -102,20 +105,25 @@ source_set("browser") {
]
}

configs += [ "//content:content_implementation" ]
configs += [
"//content:content_implementation",
"//content:libjingle_stub_config", # TODO(GYP) remove when libjingle is ready.
"//content:webrtc_stub_config", # TODO(GYP) remove when webrtc is ready.
]

if (toolkit_views) {
deps += [ "//ui/events" ]
}

if (is_win) {
sources += [
"power_profiles/power_data_provider_ia_win.cc",
"power_profiles/power_data_provider_ia_win.h",
"power_profiler/power_data_provider_ia_win.cc",
"power_profiler/power_data_provider_ia_win.h",
]
deps += [ "//third_party/power_gadget" ]
} else {
sources += [ "power_profiler/power_data_provider_dummy.cc" ]
sources -= [ "renderer_host/web_input_event_aurawin.cc" ]
}

if (!is_win && !is_mac && (!is_linux || !use_udev)) {
Expand All @@ -136,8 +144,7 @@ source_set("browser") {
deps += [ "//sandbox" ]
}
if (!is_android && !is_ios) {
# TODO(GYP)
#deps += [ "//content/browser/tracing:resources" ]
deps += [ "//content/browser/tracing:resources" ]
}

if (enable_webrtc) {
Expand Down Expand Up @@ -208,10 +215,15 @@ source_set("browser") {
sources -= [
"device_monitor_udev.cc",
"device_monitor_udev.h",
"gamepad/gamepad_platform_data_fetcher_linux.cc",
"udev_linux.cc",
"udev_linux.h",
]
if (is_linux) {
# Already filtered out on non-Linux.
sources -= [
"gamepad/gamepad_platform_data_fetcher_linux.cc",
"udev_linux.cc",
"udev_linux.h",
]
}
}

if (enable_plugins) {
Expand All @@ -232,6 +244,8 @@ source_set("browser") {

if (use_x11) {
configs += [ "//build/config/linux:x11" ]
} else {
sources -= [ "renderer_host/web_input_event_aurax11.cc" ]
}

if (use_pango) {
Expand Down Expand Up @@ -330,20 +344,20 @@ source_set("browser") {

if (enable_speech_input) {
deps += [
#"//third_party/flac", TODO(GYP)
#"//third_party/speex", TODO(GYP)
"//third_party/flac",
"//third_party/speex",
]
}

if (is_linux && use_dbus) {
sources -= [
"geolocation/empty_wifi_data_provider.cc",
]
deps += [ "//dbus" ]
} else {
if (!use_dbus) {
if (is_linux) {
if (use_dbus) {
sources -= [
"geolocation/empty_wifi_data_provider.cc",
]
deps += [ "//dbus" ]
} else {
# This will already have gotten removed for all non-Linux cases.
sources -= [ "geolocation/wifi_data_provider_linux.cc" ]
sources -= [ "geolocation/wifi_data_provider_linux.cc" ]
}
}
}
66 changes: 66 additions & 0 deletions content/browser/tracing/BUILD.gn
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Copyright 2014 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.

import("//tools/grit/grit_rule.gni")

# generate_about_tracing puts its files in this directory
tracing_gen_dir = "$root_gen_dir/content/browser/tracing"

# The script just writes filename with no dirs to the .grd, so we always need
# this file to be in the same directory as the inputs.
tracing_grd = "$tracing_gen_dir/tracing_resources.grd"

action("generate_tracing_grd") {
visibility = ":resources"
script = "generate_trace_viewer_grd.py"

input_pages = [
"$tracing_gen_dir/about_tracing.html",
"$tracing_gen_dir/about_tracing.js",
]
source_prereqs = input_pages
outputs = [ tracing_grd ]

args = rebase_path(input_pages, target_gen_dir) + [
"--output", rebase_path(tracing_grd, root_build_dir),
]

deps = [
"//third_party/trace-viewer:generate_about_tracing",
]
}

# This can't use the grit template because the grd file is generated at build
# time, so the trick of using grit_info to get the real inputs/outputs at GYP
# time isn't possible.
action("resources") {
script = "//tools/grit/grit.py"

# Get the list of grit script sources.
grit_inputs_build_rel =
exec_script("//tools/grit/grit_info.py", [ "--inputs" ], "list lines")

source_prereqs = rebase_path(grit_inputs_build_rel, ".", root_build_dir) + [
grit_resource_id_file,
]
outputs = [
"$target_gen_dir/grit/tracing_resources.h",
"$target_gen_dir/tracing_resources.pak",
]

args = [
"-i", rebase_path(tracing_grd, root_build_dir), "build",
"-f", rebase_path(grit_resource_id_file, root_build_dir),
"-o", rebase_path(target_gen_dir, root_build_dir),
# resource_ids has an entry for our .grd file that looks like:
# "<(SHARED_INTERMEDIATE_DIR)/content/browser/tracing/tracing_resources.grd"
# and what we pass here should make that resolve to our .grd file.
"-DSHARED_INTERMEDIATE_DIR=" +
rebase_path(root_gen_dir, root_build_dir),
] + grit_defines

deps = [
":generate_tracing_grd",
]
}
2 changes: 1 addition & 1 deletion content/browser/tracing/tracing_ui.cc
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/values.h"
#include "content/browser/tracing/grit/tracing_resources.h"
#include "content/browser/tracing/tracing_controller_impl.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/tracing_controller.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui.h"
#include "content/public/browser/web_ui_data_source.h"
#include "content/public/common/url_constants.h"
#include "grit/tracing_resources.h"

namespace content {
namespace {
Expand Down
1 change: 0 additions & 1 deletion content/public/renderer/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ source_set("renderer") {
configs += [
"//content:content_implementation",
"//content:libjingle_stub_config",
"//content:v8_stub_config",
"//content:widevine_stub_config",
]

Expand Down
1 change: 0 additions & 1 deletion content/renderer/BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ source_set("renderer") {
configs += [
"//content:content_implementation",
"//content:libjingle_stub_config",
"//content:v8_stub_config",
"//content:widevine_stub_config",
]

Expand Down
4 changes: 4 additions & 0 deletions third_party/protobuf/proto_library.gni
Original file line number Diff line number Diff line change
Expand Up @@ -121,5 +121,9 @@ template("proto_library") {
":$action_name",
"//third_party/protobuf:protobuf_lite",
]

# The generated headers reference headers within protobuf_lite, so
# dependencies must be able to find those headers too.
forward_dependent_configs_from = [ "//third_party/protobuf:protobuf_lite" ]
}
}
Loading

0 comments on commit 9786502

Please sign in to comment.