1# 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
5content_app_sources = [
6  "android/app_jni_registrar.cc",
7  "android/app_jni_registrar.h",
8  "android/child_process_service.cc",
9  "android/child_process_service.h",
10  "android/content_main.cc",
11  "android/content_main.h",
12  "android/library_loader_hooks.cc",
13  "content_main.cc",
14  "content_main_runner.cc",
15  "mojo/mojo_init.cc",
16  "mojo/mojo_init.h",
17  "startup_helper_win.cc",
18]
19
20content_app_deps = [
21  "//base",
22  "//base:i18n",
23  # This is needed by app/content_main_runner.cc
24  # TODO(brettw) this shouldn't be here, only final executables should be
25  # picking the allocator.
26  "//base/allocator",
27  "//content:export",
28  "//content/public/common:common_sources",
29  "//crypto",
30  "//ui/base",
31  "//ui/gfx",
32  "//ui/gfx/geometry",
33]
34
35if (is_win) {
36  content_app_deps += [ "//sandbox" ]
37} else if (is_android) {
38  content_app_sources -= [ "content_main.cc" ]
39  content_app_deps += [
40    "//content/public/android:jni",
41    "//skia",
42    "//third_party/android_tools:cpu_features"
43  ]
44}
45
46if (is_ios) {
47  content_app_sources -= [
48    "content_main.cc",
49    "mojo/mojo_init.cc",
50    "mojo/mojo_init.h",
51  ]
52} else {
53  content_app_deps += [
54    "//mojo/application_manager",
55    "//mojo/environment:chromium",
56    "//mojo/public/interfaces/application",
57    "//mojo/system",
58  ]
59}
60
61content_app_extra_configs = [
62  "//build/config/compiler:wexit_time_destructors",
63  "//content:content_implementation",
64]
65
66# This includes the app sources for both the browser and child processes.
67source_set("both") {
68  # Only the public target should depend on this. All other targets (even
69  # internal content ones) should depend on the public one.
70  visibility = [ "//content/public/app:*" ]
71
72  sources = content_app_sources
73  configs += content_app_extra_configs
74  deps = content_app_deps
75}
76
77# TODO(GYP) enable chrome_multiple_dll support
78is_chrome_multiple_dll = false
79
80if (is_chrome_multiple_dll) {
81  # It doesn't make sense to do the browser/child dll split in component mode.
82  assert(!is_component_build)
83
84  source_set("browser") {
85    visibility = [ "//content/public/app:browser" ]
86
87    sources = content_app_sources
88    configs += content_app_extra_configs
89    deps = content_app_deps
90
91    defines += [ "CHROME_MULTIPLE_DLL_BROWSER" ]
92  }
93
94  source_set("child") {
95    visibility = [ "//content/public/app:child" ]
96
97    sources = content_app_sources
98    configs += content_app_extra_configs
99    deps = content_app_deps
100
101    defines += [ "CHROME_MULTIPLE_DLL_CHILD" ]
102  }
103}
104