blob: e2fdb39d5ee2ec7fa730985c109bf38fbc3b354b [file] [log] [blame]
[email protected]f0e7ff882013-12-26 21:23:091# Copyright (c) 2013 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
5# This is the root build file for GN. GN will start processing by loading this
6# file, and recursively load all dependencies until all dependencies are either
7# resolved or known not to exist (which will cause the build to fail). So if
8# you add a new build file, there must be some path of dependencies from this
9# file to your new one or GN won't know about it.
10
[email protected]378b4f02014-06-10 15:58:4511import("//build/config/ui.gni")
cjhopmanca675d3e2014-10-24 03:50:4512if (is_android) {
13 import("//build/config/android/config.gni")
14}
[email protected]378b4f02014-06-10 15:58:4515
brettwb84b29472014-10-22 22:58:4516declare_args() {
17 # A list of extra dependencies to add to the root target. This allows a
18 # checkout to add additional targets without explicitly changing any checked-
19 # in files.
20 root_extra_deps = []
21}
22
[email protected]f0e7ff882013-12-26 21:23:0923# In GN, a "group" is a dummy target that just lists other targets.
24group("root") {
brettwb80a148e2014-09-04 16:54:1325 # This should not be linked into production and depends on test targets.
26 testonly = true
27
[email protected]dd316f62014-03-18 20:27:2628 # Note that some dependencies are commented out. These are things that are
29 # currently written but not hooked up to the build yet. They may need to be
30 # completed or possibly just tested and then re-enabled.
[email protected]f0e7ff882013-12-26 21:23:0931 deps = [
[email protected]f5607902014-08-21 19:14:5732 "//apps",
[email protected]b27a3c72014-07-16 17:50:0933 "//ash",
[email protected]d05751a22014-05-29 20:54:2434 "//cc",
[email protected]38564622014-08-19 02:47:1835 "//cc/blink",
[email protected]a3c134352014-07-11 19:23:1936 "//chrome/browser",
[email protected]cb75c092014-06-24 19:31:3437 "//chrome/browser/devtools",
[email protected]7f2b78ed2014-06-20 04:26:5538 "//chrome/common",
[email protected]3b816b92014-06-23 22:28:1539 "//chrome/plugin",
[email protected]58e36842014-06-21 15:55:0340 "//chrome/renderer",
[email protected]3b816b92014-06-23 22:28:1541 "//chrome/utility",
[email protected]7a1da462014-06-20 21:40:0142 "//components:all_components",
[email protected]dab154ee2014-06-13 23:48:5043 "//content",
[email protected]6b9028ab2014-07-23 17:15:3844 "//content/shell:content_shell",
[email protected]df82b4f52014-07-23 20:21:5045 "//content/test:test_support",
[email protected]7a7e0852014-04-14 23:25:1346 "//crypto",
ppi2438a3e2014-10-28 21:55:1047 "//device/battery",
[email protected]abd4b682014-07-16 20:26:3048 "//device/bluetooth",
49 "//device/nfc",
[email protected]6f9866a2014-07-26 20:06:3550 "//extensions/browser",
[email protected]4205a96e2014-07-23 14:08:1851 "//extensions/common",
[email protected]abd4b682014-07-16 20:26:3052 "//extensions/common/api",
[email protected]60e3e7182014-07-28 23:14:0353 "//extensions/renderer",
[email protected]8f2cee02014-05-22 23:19:2554 "//gin",
[email protected]d05751a22014-05-29 20:54:2455 "//gpu",
[email protected]b2b2bf52014-05-28 20:26:5756 "//google_apis",
[email protected]abd4b682014-07-16 20:26:3057 "//google_apis/gcm",
[email protected]517d5282014-04-02 17:03:3058 "//ipc",
[email protected]64860882014-08-04 23:44:1759 "//ipc/mojo",
ajwongf7b1cb692014-08-23 21:36:2260 "//jingle:notifier",
[email protected]0d0bd382014-07-16 20:14:0661 "//media",
acolwell9e0840d2014-09-06 19:01:3262 "//media/blink",
[email protected]c6101192014-07-31 08:56:2663 "//media/cast",
tim09f86c052014-09-18 22:10:1464 "//media/mojo",
[email protected]9a1526b2014-04-30 05:27:0665 "//mojo",
[email protected]4625ade2014-04-15 19:26:4466 "//net",
[email protected]71319202014-06-05 23:19:2867 "//pdf",
[email protected]240e3032014-05-27 20:15:2068 "//ppapi:ppapi_c",
[email protected]fc2020f2014-06-04 18:09:3969 "//printing",
Brett Wilson1c693992014-08-25 19:10:0170 "//remoting/client/plugin",
[email protected]543f171c2014-06-04 22:00:4171 "//sandbox",
[email protected]c7e9f4942014-06-02 17:40:3072 "//sdch",
[email protected]1b87123d2014-04-12 10:37:1973 "//skia",
pilgrim4af8c212014-09-05 17:30:1574 "//storage/browser",
[email protected]b2b2bf52014-05-28 20:26:5775 "//sql",
[email protected]f8ae9a4f2014-08-07 00:05:2076 "//sync",
[email protected]f9a32062014-06-21 20:20:3577 "//third_party/WebKit/public:all_blink",
[email protected]3a98c812014-05-30 00:52:3678 "//third_party/angle:translator",
[email protected]cceca60d2014-05-13 02:23:3479 "//third_party/brotli",
[email protected]797b25042014-07-01 23:54:1780 "//third_party/cacheinvalidation",
[email protected]b9f4c682014-07-10 22:00:3781 "//third_party/cld",
82 "//third_party/cld_2",
[email protected]822d467b2014-06-19 19:00:4383 "//third_party/ffmpeg",
[email protected]5c10cca42014-06-12 19:37:2884 "//third_party/flac",
[email protected]c67679f2014-05-21 16:53:1985 "//third_party/harfbuzz-ng",
[email protected]f9a32062014-06-21 20:20:3586 "//third_party/hunspell",
[email protected]cceca60d2014-05-13 02:23:3487 "//third_party/iccjpeg",
[email protected]cb3421f2014-04-14 00:42:4888 "//third_party/icu",
[email protected]1b87123d2014-04-12 10:37:1989 "//third_party/leveldatabase",
[email protected]fca567b2014-07-02 17:37:3490 "//third_party/libphonenumber",
ajwongf7b1cb692014-08-23 21:36:2291 "//third_party/libjingle",
[email protected]a9155082014-04-06 06:55:0892 "//third_party/libpng",
[email protected]0133ad72014-07-01 07:03:2593 "//third_party/libsrtp",
[email protected]1d6b6062014-04-08 17:42:1494 "//third_party/libusb",
[email protected]f087aad2014-05-16 18:16:1395 "//third_party/libwebm",
[email protected]4b08b342014-04-16 03:01:0396 "//third_party/libwebp",
[email protected]d62c51e2014-06-12 21:56:1197 "//third_party/libxslt",
brettwbf20b732014-09-16 23:57:4198 "//third_party/libvpx",
[email protected]543f171c2014-06-04 22:00:4199 "//third_party/libyuv",
[email protected]dab154ee2014-06-13 23:48:50100 "//third_party/lzma_sdk",
[email protected]f1782d92014-06-03 23:14:20101 "//third_party/mesa",
[email protected]1da2cde2014-07-01 14:16:36102 "//third_party/opus",
[email protected]cceca60d2014-05-13 02:23:34103 "//third_party/ots",
[email protected]ff6d0962014-05-22 23:21:23104 "//third_party/protobuf:protobuf_lite",
[email protected]cceca60d2014-05-13 02:23:34105 "//third_party/qcms",
[email protected]a9155082014-04-06 06:55:08106 "//third_party/re2",
[email protected]7b31c832014-04-09 02:08:44107 "//third_party/smhasher:cityhash",
108 "//third_party/smhasher:murmurhash3",
109 "//third_party/smhasher:pmurhash",
[email protected]171e3ad2014-06-26 23:11:12110 "//third_party/snappy",
[email protected]5c10cca42014-06-12 19:37:28111 "//third_party/speex",
Brett Wilsonc63f22b2014-09-02 21:59:57112 "//third_party/usrsctp",
[email protected]824288842014-06-20 05:26:59113 "//third_party/widevine/cdm:version_h",
kjellander91966d302014-08-25 16:07:55114 "//third_party/webrtc",
[email protected]a9155082014-04-06 06:55:08115 "//third_party/zlib",
[email protected]71eb1122014-05-06 04:25:26116 "//third_party:jpeg",
[email protected]f0e7ff882013-12-26 21:23:09117 "//tools/gn",
[email protected]938c54d2014-07-23 21:15:14118 "//tools/imagediff($host_toolchain)",
tfarinad22dcfd2014-09-09 17:21:19119 "//ui/accessibility",
[email protected]6e44c302014-07-22 21:51:37120 "//ui/app_list",
[email protected]bd56a5b2014-06-07 04:09:29121 "//ui/aura",
[email protected]52140d882014-05-30 19:22:40122 "//ui/base",
[email protected]a1d7d4f2014-07-16 21:33:36123 "//ui/display",
[email protected]06d41872014-04-09 01:18:44124 "//ui/events",
[email protected]07a8725b2014-04-10 21:16:59125 "//ui/gfx",
[email protected]1ea01752014-05-23 19:01:46126 "//ui/gl",
[email protected]604828c2014-07-02 20:39:12127 "//ui/keyboard",
[email protected]a306aaa2014-05-24 13:21:50128 "//ui/native_theme",
[email protected]4c047c02014-04-21 22:41:19129 "//ui/resources",
[email protected]52140d882014-05-30 19:22:40130 "//ui/snapshot",
[email protected]e3d74862014-05-18 14:12:27131 "//ui/strings",
[email protected]0311d4c2014-05-17 04:55:16132 "//ui/surface",
[email protected]cbba05a2014-07-16 00:08:26133 "//ui/views",
[email protected]a1d7d4f2014-07-16 21:33:36134 "//ui/views/controls/webview",
[email protected]604828c2014-07-02 20:39:12135 "//ui/web_dialogs",
[email protected]4b6d32d2014-04-02 17:08:15136 "//url",
[email protected]fa5e2bb2014-06-02 14:29:09137 "//v8:v8",
brettwb84b29472014-10-22 22:58:45138 ] + root_extra_deps
[email protected]fce5c3fe2014-04-10 21:13:05139
[email protected]6fa82cc2014-06-18 20:33:07140 if (!is_win) {
[email protected]f8d55d32014-06-19 20:02:29141 deps += [ "//breakpad:symupload" ]
[email protected]6fa82cc2014-06-18 20:33:07142 }
143
[email protected]fce5c3fe2014-04-10 21:13:05144 if (is_linux) {
145 deps += [
[email protected]886323c2014-06-14 20:34:16146 "//dbus",
[email protected]8acc5f52014-05-31 22:16:30147 "//third_party/fontconfig",
[email protected]fce5c3fe2014-04-10 21:13:05148 "//third_party/freetype2",
149 ]
150 }
[email protected]5a8d5162014-04-12 01:19:16151
[email protected]6b9028ab2014-07-23 17:15:38152 if (use_x11) {
153 deps += [ "//tools/xdisplaycheck" ]
154 }
155
James Robinson060f2e32014-09-10 22:31:37156 if (use_aura) {
157 deps += [ "//ui/wm" ]
158 }
159
[email protected]a306aaa2014-05-24 13:21:50160 if (is_win) {
161 deps += [
162 "//ui/metro_viewer",
163 ]
164 }
165
[email protected]2d6893a2014-06-02 19:16:36166 if (is_win || is_mac || is_chromeos) {
167 # RLZ works on these platforms.
168 deps += [
169 "//rlz:rlz_lib",
170 ]
171 }
172
[email protected]137dff6d2014-06-12 19:35:55173 if (cpu_arch == "x86" || cpu_arch == "x64") {
174 # YASM is x86/x64 only.
175 deps += [ "//third_party/yasm($host_toolchain)" ]
176 }
177
[email protected]5a8d5162014-04-12 01:19:16178 if (is_android) {
[email protected]26046b52014-07-16 00:11:03179 deps += [
cjhopman31511332014-10-23 01:05:02180 "//base/android/linker:chromium_android_linker",
181 "//build/android/rezip",
cjhopmana19ca072014-09-16 02:45:33182 "//third_party/openmax_dl/dl",
cjhopmancd7694af2014-09-08 00:00:04183 "//content/shell/android:content_shell_apk",
cjhopman11a68cb2014-10-13 22:47:54184 "//chrome/android:chrome_shell_apk",
cjhopman4fe114e2014-10-16 18:02:23185 "//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk",
[email protected]684b2292014-08-22 19:12:39186 "//ui/android:ui_java",
[email protected]684b2292014-08-22 19:12:39187 "//third_party/android_tools:android_gcm_java",
188 "//third_party/android_tools:uiautomator_java",
189 "//third_party/android_tools:android_support_v13_java",
190 "//third_party/android_tools:android_support_v7_appcompat_java",
191 "//third_party/android_tools:android_support_v7_mediarouter_java",
cjhopmandad5f4272014-09-05 01:00:55192 "//third_party/eyesfree:eyesfree_java",
[email protected]26046b52014-07-16 00:11:03193 ]
194
cjhopmanca675d3e2014-10-24 03:50:45195 if (has_chrome_android_internal) {
196 deps += [
197 "//clank",
198 ]
199 }
200
[email protected]5a8d5162014-04-12 01:19:16201 deps -= [
[email protected]f5607902014-08-21 19:14:57202 "//apps", # Needs testing.
James Robinson2ed4d692014-09-17 05:20:58203 "//chrome/browser",
204 "//chrome/browser/devtools",
205 "//chrome/common",
206 "//chrome/plugin",
207 "//chrome/renderer",
208 "//chrome/utility",
James Robinson060f2e32014-09-10 22:31:37209 "//content/shell:content_shell",
[email protected]6f9866a2014-07-26 20:06:35210 "//extensions/browser",
[email protected]4205a96e2014-07-23 14:08:18211 "//extensions/common",
[email protected]fb2799e2014-07-15 23:50:29212 "//extensions/common/api",
[email protected]60e3e7182014-07-28 23:14:03213 "//extensions/renderer",
[email protected]71319202014-06-05 23:19:28214 "//pdf", # Not compiled on Android in GYP yet, either.
[email protected]240e3032014-05-27 20:15:20215 "//ppapi:ppapi_c",
[email protected]5a8d5162014-04-12 01:19:16216 "//third_party/libusb",
[email protected]604828c2014-07-02 20:39:12217 "//ui/keyboard", # Blocked on content.
[email protected]d62c51e2014-06-12 21:56:11218
219 # Seems to not be compiled on Android. Otherwise it will need a config.h.
220 "//third_party/libxslt",
221
[email protected]b27a3c72014-07-16 17:50:09222 # Not relevant to Android.
223 "//ash",
[email protected]5a8d5162014-04-12 01:19:16224 "//tools/gn",
[email protected]bd56a5b2014-06-07 04:09:29225 "//ui/aura",
[email protected]a1d7d4f2014-07-16 21:33:36226 "//ui/display",
[email protected]cbba05a2014-07-16 00:08:26227 "//ui/views",
[email protected]a1d7d4f2014-07-16 21:33:36228 "//ui/views/controls/webview",
[email protected]df3ecfde2014-05-20 21:52:34229
[email protected]31e0749c2014-06-12 19:55:11230 # Fails on Android for unknown reasons.
231 "//third_party/flac",
[email protected]f8d55d32014-06-19 20:02:29232 "//breakpad:symupload",
[email protected]31e0749c2014-06-12 19:55:11233
[email protected]44a5a362014-05-30 20:01:51234 # Not tested on Android yet:
[email protected]abd4b682014-07-16 20:26:30235 "//google_apis/gcm",
Brett Wilson1c693992014-08-25 19:10:01236 "//remoting/client/plugin",
pilgrim4af8c212014-09-05 17:30:15237 "//storage/browser",
[email protected]b9f4c682014-07-10 22:00:37238 "//third_party/cld_2",
[email protected]822d467b2014-06-19 19:00:43239 "//third_party/ffmpeg",
[email protected]6e44c302014-07-22 21:51:37240 "//ui/app_list",
[email protected]604828c2014-07-02 20:39:12241 "//ui/web_dialogs",
[email protected]5a8d5162014-04-12 01:19:16242 ]
243 }
[email protected]378b4f02014-06-10 15:58:45244
245 if (use_ozone) {
246 deps += [
[email protected]4c5e36b2014-07-24 20:44:16247 "//ui/ozone",
248 "//ui/ozone/demo",
[email protected]378b4f02014-06-10 15:58:45249 ]
250 }
reillygd77718d2014-09-04 00:57:56251
252 # Non-mobile builds.
253 if (!is_android && !is_ios) {
254 deps += [
255 "//device/usb",
256 ]
257 }
[email protected]f0e7ff882013-12-26 21:23:09258}