blob: 1d32ad24a201bd4f5ef13729755950ad2a915404 [file] [log] [blame]
[email protected]7e4c33142014-05-21 22:01:321# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
[email protected]189add52014-05-28 16:51:445import("//tools/grit/grit_rule.gni")
phosek636bceb32015-10-27 03:36:486import("//build/config/nacl/config.gni")
[email protected]189add52014-05-28 16:51:447
8# Applied by targets internal to content.
9config("content_implementation") {
10 defines = [ "CONTENT_IMPLEMENTATION" ]
11}
12
Brett Wilson8f1323042014-09-11 16:58:5613# When targets depend on, e.g. //content/public/browser, what happens? To
14# facilitate the complexity here, the "public" targets are groups that forward
15# to the right thing depending on the build mode. Say for additional
16# illustration, the public browser sources also depend on the public common
17# ones.
18#
19# The non-component build is easy:
20# foo ->
21# //content/public/browser (group) ->
22# //content/public/browser:browser_sources (source set) ->
23# //content/browser (source set, this is the non-public browser target)
24# //content/public/common:common_sources (source set)
25#
26# The component build is more complicated because we want everybody to depend on
27# one content shared library regardless of which public target they depend on:
28# foo ->
29# //content/public/browser (group) ->
30# //content (shared library) ->
31# //content/public/browser:browser_sources (source set) ->
32# //content/browser (source set; this is the non-public browser target)
33# //content/public/common:common_sources (source set)
34#
35# That the internal content dependencies must depend on the *_sources targets
36# to avoid dependency cycles, and external dependencies must depend on the
37# //content/public/browser and similar targets to avoid double-linking (these
38# targets make sure the dependency goes through the content shared library
39# when doing a component build).
40
phosek636bceb32015-10-27 03:36:4841if (!is_nacl_nonsfi) {
42 content_shared_components = [
43 "//content/gpu:gpu_sources",
44 "//content/public/browser:browser_sources",
45 "//content/public/child:child_sources",
kcwu08377ad2016-02-18 19:12:4246 "//content/public/gpu:gpu_sources",
phosek636bceb32015-10-27 03:36:4847 "//content/public/common:common_sources",
48 "//content/public/plugin:plugin_sources",
49 "//content/public/renderer:renderer_sources",
50 "//content/public/utility:utility_sources",
51 ]
[email protected]dab154ee2014-06-13 23:48:5052
phosek636bceb32015-10-27 03:36:4853 if (enable_plugins) {
54 content_shared_components +=
55 [ "//content/ppapi_plugin:ppapi_plugin_sources" ]
56 }
jamesr50081742014-09-09 07:52:2257}
58
[email protected]dab154ee2014-06-13 23:48:5059if (is_component_build) {
agrieve3f532322016-01-05 03:23:1560 component("content") {
scottmg7afc4092014-12-03 19:22:4261 public_deps =
62 content_shared_components + [ "//content/public/app:both_sources" ]
brettwba7a73d2015-08-31 22:17:3963 deps = [
64 "//build/config/sanitizers:deps",
65 ]
[email protected]dab154ee2014-06-13 23:48:5066 }
phosek636bceb32015-10-27 03:36:4867} else if (is_nacl_nonsfi) {
68 source_set("content") {
69 set_sources_assignment_filter([])
70 sources = [
71 "common/sandbox_linux/sandbox_init_linux.cc",
72 "common/sandbox_linux/sandbox_seccomp_bpf_linux.cc",
73 "common/send_zygote_child_ping_linux.cc",
74 "public/common/content_switches.cc",
75 ]
76 set_sources_assignment_filter(sources_assignment_filter)
77
78 defines = [ "USE_SECCOMP_BPF=1" ]
79
80 deps = [
81 "//base",
82 ]
83 }
[email protected]dab154ee2014-06-13 23:48:5084} else {
85 group("content") {
brettwb7f2c302015-12-08 01:29:2186 public_deps = content_shared_components
[email protected]dab154ee2014-06-13 23:48:5087 }
88}
89
[email protected]189add52014-05-28 16:51:4490grit("resources") {
91 source = "content_resources.grd"
[email protected]ae8d08982014-08-20 19:42:2992 use_qualified_include = true
[email protected]b89c53842014-07-23 16:32:3293 outputs = [
94 "grit/content_resources.h",
95 "content_resources.pak",
[email protected]b89c53842014-07-23 16:32:3296 ]
[email protected]189add52014-05-28 16:51:4497}
98
[email protected]dab154ee2014-06-13 23:48:5099# This target exists to "hold" the content_export header so we can do proper
100# inclusion testing of it.
101source_set("export") {
brettw9af42622014-09-06 21:21:02102 visibility = [ "//content/*" ]
[email protected]dab154ee2014-06-13 23:48:50103 sources = [
tfarina9568fc62015-07-22 23:35:38104 "common/content_export.h",
[email protected]dab154ee2014-06-13 23:48:50105 ]
106}
dprankedb5527d72015-03-08 04:22:47107
brettw4f56c5982015-05-04 22:12:39108# In the GYP build, this file is listed in several targets. In GN just have
109# those targets depend on this one. This can be depended on for any
110# platform for simplicity, and is a no-op on non-Windows.
pmonette18d3ed32015-10-16 21:06:06111source_set("sandbox_helper_win") {
brettw4f56c5982015-05-04 22:12:39112 if (is_win) {
dprankedb5527d72015-03-08 04:22:47113 sources = [
pmonette18d3ed32015-10-16 21:06:06114 "app/sandbox_helper_win.cc",
115 "public/app/sandbox_helper_win.h",
dprankedb5527d72015-03-08 04:22:47116 ]
117
118 deps = [
dprankedb5527d72015-03-08 04:22:47119 "//sandbox",
120 ]
121 }
122}