summaryrefslogtreecommitdiffstats
path: root/content/app/BUILD.gn
blob: 435a39e9eed60b3b679ca5a7c39add2a9a2cd507 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# 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("//build/config/chrome_build.gni")

content_app_sources = [
  "android/app_jni_registrar.cc",
  "android/app_jni_registrar.h",
  "android/child_process_service.cc",
  "android/child_process_service.h",
  "android/content_jni_onload.cc",
  "android/content_main.cc",
  "android/content_main.h",
  "android/download_main.cc",
  "android/library_loader_hooks.cc",
  "android/library_loader_hooks.h",
  "content_main.cc",
  "content_main_runner.cc",
  "mac/mac_init.mm",
  "mac/mac_init.h",
  "mojo/mojo_init.cc",
  "mojo/mojo_init.h",
]

content_app_deps = [
  "//base",
  "//base:i18n",
  "//content:export",
  "//content:sandbox_helper_win",
  "//content/public/common:common_sources",
  "//content/public/common:mojo_bindings",
  "//crypto",
  "//ui/base",
  "//ui/gfx",
  "//ui/gfx/geometry",
]

if (is_win) {
  content_app_deps += [ "//sandbox" ]
} else if (is_android) {
  content_app_sources -= [ "content_main.cc" ]
  content_app_deps += [
    "//content/public/android:jni",
    "//device/vibration",
    "//skia",
    "//third_party/android_tools:cpu_features",
    "//ui/android",
  ]
}

if (is_ios) {
  content_app_sources -= [
    "content_main.cc",
    "mojo/mojo_init.cc",
    "mojo/mojo_init.h",
  ]
} else {
  content_app_deps += [
    "//mojo/shell/public/interfaces",
    "//mojo/edk/system",
    "//mojo/environment:chromium",
  ]
}

content_app_extra_configs = [
  "//build/config/compiler:wexit_time_destructors",
  "//content:content_implementation",
  "//content/public/common:mojo_shell_client",
  "//v8:external_startup_data",
]

if (!is_multi_dll_chrome) {
  content_app_deps += [ "//content/gpu:gpu_sources" ]
}

# This includes the app sources for both the browser and child processes.
source_set("both") {
  # Only the public target should depend on this. All other targets (even
  # internal content ones) should depend on the public one.
  visibility = [ "//content/public/app:*" ]

  sources = content_app_sources
  configs += content_app_extra_configs
  deps = content_app_deps
}

if (is_multi_dll_chrome) {
  # It doesn't make sense to do the browser/child dll split in component mode.
  assert(!is_component_build)

  source_set("browser") {
    visibility = [ "//content/public/app:browser" ]

    sources = content_app_sources
    configs += content_app_extra_configs
    deps = content_app_deps

    defines = [ "CHROME_MULTIPLE_DLL_BROWSER" ]
  }

  source_set("child") {
    visibility = [ "//content/public/app:child" ]

    sources = content_app_sources
    configs += content_app_extra_configs
    deps = content_app_deps

    defines = [ "CHROME_MULTIPLE_DLL_CHILD" ]
  }
}