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