blob: b18d34e20abc6602482cc795bd2266556cfcc13c [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",
Brett Wilson32ce17a2014-11-10 17:45:3041 "//chrome/test",
42 "//chrome/tools",
[email protected]3b816b92014-06-23 22:28:1543 "//chrome/utility",
[email protected]7a1da462014-06-20 21:40:0144 "//components:all_components",
[email protected]dab154ee2014-06-13 23:48:5045 "//content",
[email protected]6b9028ab2014-07-23 17:15:3846 "//content/shell:content_shell",
[email protected]df82b4f52014-07-23 20:21:5047 "//content/test:test_support",
[email protected]7a7e0852014-04-14 23:25:1348 "//crypto",
ppi2438a3e2014-10-28 21:55:1049 "//device/battery",
[email protected]abd4b682014-07-16 20:26:3050 "//device/bluetooth",
51 "//device/nfc",
timvolodine8e29c142014-12-06 13:49:0152 "//device/vibration",
[email protected]6f9866a2014-07-26 20:06:3553 "//extensions/browser",
[email protected]4205a96e2014-07-23 14:08:1854 "//extensions/common",
[email protected]abd4b682014-07-16 20:26:3055 "//extensions/common/api",
[email protected]60e3e7182014-07-28 23:14:0356 "//extensions/renderer",
[email protected]8f2cee02014-05-22 23:19:2557 "//gin",
[email protected]d05751a22014-05-29 20:54:2458 "//gpu",
[email protected]b2b2bf52014-05-28 20:26:5759 "//google_apis",
[email protected]abd4b682014-07-16 20:26:3060 "//google_apis/gcm",
[email protected]517d5282014-04-02 17:03:3061 "//ipc",
[email protected]64860882014-08-04 23:44:1762 "//ipc/mojo",
ajwongf7b1cb692014-08-23 21:36:2263 "//jingle:notifier",
[email protected]0d0bd382014-07-16 20:14:0664 "//media",
acolwell9e0840d2014-09-06 19:01:3265 "//media/blink",
[email protected]c6101192014-07-31 08:56:2666 "//media/cast",
tim09f86c052014-09-18 22:10:1467 "//media/mojo",
[email protected]9a1526b2014-04-30 05:27:0668 "//mojo",
[email protected]4625ade2014-04-15 19:26:4469 "//net",
[email protected]71319202014-06-05 23:19:2870 "//pdf",
[email protected]240e3032014-05-27 20:15:2071 "//ppapi:ppapi_c",
[email protected]fc2020f2014-06-04 18:09:3972 "//printing",
Brett Wilson1c693992014-08-25 19:10:0173 "//remoting/client/plugin",
[email protected]543f171c2014-06-04 22:00:4174 "//sandbox",
[email protected]c7e9f4942014-06-02 17:40:3075 "//sdch",
[email protected]1b87123d2014-04-12 10:37:1976 "//skia",
pilgrim4af8c212014-09-05 17:30:1577 "//storage/browser",
[email protected]b2b2bf52014-05-28 20:26:5778 "//sql",
[email protected]f8ae9a4f2014-08-07 00:05:2079 "//sync",
[email protected]f9a32062014-06-21 20:20:3580 "//third_party/WebKit/public:all_blink",
[email protected]3a98c812014-05-30 00:52:3681 "//third_party/angle:translator",
[email protected]cceca60d2014-05-13 02:23:3482 "//third_party/brotli",
[email protected]797b25042014-07-01 23:54:1783 "//third_party/cacheinvalidation",
[email protected]b9f4c682014-07-10 22:00:3784 "//third_party/cld",
85 "//third_party/cld_2",
[email protected]822d467b2014-06-19 19:00:4386 "//third_party/ffmpeg",
[email protected]5c10cca42014-06-12 19:37:2887 "//third_party/flac",
[email protected]c67679f2014-05-21 16:53:1988 "//third_party/harfbuzz-ng",
[email protected]f9a32062014-06-21 20:20:3589 "//third_party/hunspell",
[email protected]cceca60d2014-05-13 02:23:3490 "//third_party/iccjpeg",
[email protected]cb3421f2014-04-14 00:42:4891 "//third_party/icu",
[email protected]1b87123d2014-04-12 10:37:1992 "//third_party/leveldatabase",
[email protected]fca567b2014-07-02 17:37:3493 "//third_party/libphonenumber",
ajwongf7b1cb692014-08-23 21:36:2294 "//third_party/libjingle",
[email protected]a9155082014-04-06 06:55:0895 "//third_party/libpng",
[email protected]0133ad72014-07-01 07:03:2596 "//third_party/libsrtp",
[email protected]1d6b6062014-04-08 17:42:1497 "//third_party/libusb",
[email protected]f087aad2014-05-16 18:16:1398 "//third_party/libwebm",
[email protected]4b08b342014-04-16 03:01:0399 "//third_party/libwebp",
[email protected]d62c51e2014-06-12 21:56:11100 "//third_party/libxslt",
brettwbf20b732014-09-16 23:57:41101 "//third_party/libvpx",
[email protected]543f171c2014-06-04 22:00:41102 "//third_party/libyuv",
[email protected]dab154ee2014-06-13 23:48:50103 "//third_party/lzma_sdk",
[email protected]f1782d92014-06-03 23:14:20104 "//third_party/mesa",
[email protected]1da2cde2014-07-01 14:16:36105 "//third_party/opus",
[email protected]cceca60d2014-05-13 02:23:34106 "//third_party/ots",
[email protected]ff6d0962014-05-22 23:21:23107 "//third_party/protobuf:protobuf_lite",
[email protected]cceca60d2014-05-13 02:23:34108 "//third_party/qcms",
[email protected]a9155082014-04-06 06:55:08109 "//third_party/re2",
[email protected]7b31c832014-04-09 02:08:44110 "//third_party/smhasher:cityhash",
111 "//third_party/smhasher:murmurhash3",
112 "//third_party/smhasher:pmurhash",
[email protected]171e3ad2014-06-26 23:11:12113 "//third_party/snappy",
[email protected]5c10cca42014-06-12 19:37:28114 "//third_party/speex",
Brett Wilsonc63f22b2014-09-02 21:59:57115 "//third_party/usrsctp",
[email protected]824288842014-06-20 05:26:59116 "//third_party/widevine/cdm:version_h",
kjellander91966d302014-08-25 16:07:55117 "//third_party/webrtc",
[email protected]a9155082014-04-06 06:55:08118 "//third_party/zlib",
[email protected]71eb1122014-05-06 04:25:26119 "//third_party:jpeg",
[email protected]f0e7ff882013-12-26 21:23:09120 "//tools/gn",
[email protected]938c54d2014-07-23 21:15:14121 "//tools/imagediff($host_toolchain)",
tfarinad22dcfd2014-09-09 17:21:19122 "//ui/accessibility",
[email protected]6e44c302014-07-22 21:51:37123 "//ui/app_list",
[email protected]bd56a5b2014-06-07 04:09:29124 "//ui/aura",
[email protected]52140d882014-05-30 19:22:40125 "//ui/base",
[email protected]a1d7d4f2014-07-16 21:33:36126 "//ui/display",
[email protected]06d41872014-04-09 01:18:44127 "//ui/events",
[email protected]07a8725b2014-04-10 21:16:59128 "//ui/gfx",
[email protected]1ea01752014-05-23 19:01:46129 "//ui/gl",
[email protected]604828c2014-07-02 20:39:12130 "//ui/keyboard",
[email protected]a306aaa2014-05-24 13:21:50131 "//ui/native_theme",
[email protected]4c047c02014-04-21 22:41:19132 "//ui/resources",
[email protected]52140d882014-05-30 19:22:40133 "//ui/snapshot",
[email protected]e3d74862014-05-18 14:12:27134 "//ui/strings",
[email protected]0311d4c2014-05-17 04:55:16135 "//ui/surface",
mohsenf837da7c2014-12-09 19:01:34136 "//ui/touch_selection",
[email protected]cbba05a2014-07-16 00:08:26137 "//ui/views",
[email protected]a1d7d4f2014-07-16 21:33:36138 "//ui/views/controls/webview",
[email protected]604828c2014-07-02 20:39:12139 "//ui/web_dialogs",
[email protected]4b6d32d2014-04-02 17:08:15140 "//url",
[email protected]fa5e2bb2014-06-02 14:29:09141 "//v8:v8",
scottmg34fb7e52014-12-03 23:27:24142 ]
143 deps += root_extra_deps
[email protected]fce5c3fe2014-04-10 21:13:05144
[email protected]6fa82cc2014-06-18 20:33:07145 if (!is_win) {
[email protected]f8d55d32014-06-19 20:02:29146 deps += [ "//breakpad:symupload" ]
[email protected]6fa82cc2014-06-18 20:33:07147 }
148
[email protected]fce5c3fe2014-04-10 21:13:05149 if (is_linux) {
150 deps += [
[email protected]886323c2014-06-14 20:34:16151 "//dbus",
[email protected]8acc5f52014-05-31 22:16:30152 "//third_party/fontconfig",
[email protected]fce5c3fe2014-04-10 21:13:05153 "//third_party/freetype2",
154 ]
155 }
[email protected]5a8d5162014-04-12 01:19:16156
[email protected]6b9028ab2014-07-23 17:15:38157 if (use_x11) {
158 deps += [ "//tools/xdisplaycheck" ]
159 }
160
James Robinson060f2e32014-09-10 22:31:37161 if (use_aura) {
162 deps += [ "//ui/wm" ]
163 }
164
[email protected]a306aaa2014-05-24 13:21:50165 if (is_win) {
scottmg34fb7e52014-12-03 23:27:24166 deps += [ "//ui/metro_viewer" ]
[email protected]a306aaa2014-05-24 13:21:50167 }
168
[email protected]2d6893a2014-06-02 19:16:36169 if (is_win || is_mac || is_chromeos) {
170 # RLZ works on these platforms.
scottmg34fb7e52014-12-03 23:27:24171 deps += [ "//rlz:rlz_lib" ]
[email protected]2d6893a2014-06-02 19:16:36172 }
173
[email protected]137dff6d2014-06-12 19:35:55174 if (cpu_arch == "x86" || cpu_arch == "x64") {
175 # YASM is x86/x64 only.
176 deps += [ "//third_party/yasm($host_toolchain)" ]
177 }
178
[email protected]5a8d5162014-04-12 01:19:16179 if (is_android) {
[email protected]26046b52014-07-16 00:11:03180 deps += [
cjhopman31511332014-10-23 01:05:02181 "//base/android/linker:chromium_android_linker",
cjhopman3d85c6d2014-11-18 03:39:38182 "//build/android/gyp/test:hello_world",
cjhopman31511332014-10-23 01:05:02183 "//build/android/rezip",
cjhopmana19ca072014-09-16 02:45:33184 "//third_party/openmax_dl/dl",
cjhopmancd7694af2014-09-08 00:00:04185 "//content/shell/android:content_shell_apk",
cjhopman11a68cb2014-10-13 22:47:54186 "//chrome/android:chrome_shell_apk",
cjhopman4fe114e2014-10-16 18:02:23187 "//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk",
[email protected]684b2292014-08-22 19:12:39188 "//ui/android:ui_java",
[email protected]684b2292014-08-22 19:12:39189 "//third_party/android_tools:android_gcm_java",
190 "//third_party/android_tools:uiautomator_java",
191 "//third_party/android_tools:android_support_v13_java",
192 "//third_party/android_tools:android_support_v7_appcompat_java",
193 "//third_party/android_tools:android_support_v7_mediarouter_java",
mikecase85e83ed2014-12-08 19:18:29194 "//third_party/mockito:mockito_java",
[email protected]26046b52014-07-16 00:11:03195 ]
196
cjhopmanca675d3e2014-10-24 03:50:45197 if (has_chrome_android_internal) {
scottmg34fb7e52014-12-03 23:27:24198 deps += [ "//clank" ]
cjhopmanca675d3e2014-10-24 03:50:45199 }
200
dprankecf8465db72014-11-10 23:51:22201 # TODO(GYP): Move the targets in the rest of this block that still
202 # need to be made to work in the GN build to the bottom of the file
203 # so that all the remaining work is located in one place in the file.
204 # This block should contain only the targets that aren't actually
205 # needed on Android.
206
[email protected]5a8d5162014-04-12 01:19:16207 deps -= [
[email protected]f5607902014-08-21 19:14:57208 "//apps", # Needs testing.
James Robinson2ed4d692014-09-17 05:20:58209 "//chrome/browser",
210 "//chrome/browser/devtools",
211 "//chrome/common",
212 "//chrome/plugin",
213 "//chrome/renderer",
Brett Wilson32ce17a2014-11-10 17:45:30214 "//chrome/test",
215 "//chrome/tools",
James Robinson2ed4d692014-09-17 05:20:58216 "//chrome/utility",
James Robinson060f2e32014-09-10 22:31:37217 "//content/shell:content_shell",
[email protected]6f9866a2014-07-26 20:06:35218 "//extensions/browser",
[email protected]4205a96e2014-07-23 14:08:18219 "//extensions/common",
[email protected]fb2799e2014-07-15 23:50:29220 "//extensions/common/api",
[email protected]60e3e7182014-07-28 23:14:03221 "//extensions/renderer",
[email protected]71319202014-06-05 23:19:28222 "//pdf", # Not compiled on Android in GYP yet, either.
[email protected]240e3032014-05-27 20:15:20223 "//ppapi:ppapi_c",
[email protected]5a8d5162014-04-12 01:19:16224 "//third_party/libusb",
[email protected]604828c2014-07-02 20:39:12225 "//ui/keyboard", # Blocked on content.
[email protected]d62c51e2014-06-12 21:56:11226
227 # Seems to not be compiled on Android. Otherwise it will need a config.h.
228 "//third_party/libxslt",
229
[email protected]b27a3c72014-07-16 17:50:09230 # Not relevant to Android.
231 "//ash",
[email protected]5a8d5162014-04-12 01:19:16232 "//tools/gn",
[email protected]bd56a5b2014-06-07 04:09:29233 "//ui/aura",
[email protected]a1d7d4f2014-07-16 21:33:36234 "//ui/display",
[email protected]cbba05a2014-07-16 00:08:26235 "//ui/views",
[email protected]a1d7d4f2014-07-16 21:33:36236 "//ui/views/controls/webview",
[email protected]df3ecfde2014-05-20 21:52:34237
[email protected]31e0749c2014-06-12 19:55:11238 # Fails on Android for unknown reasons.
239 "//third_party/flac",
[email protected]f8d55d32014-06-19 20:02:29240 "//breakpad:symupload",
[email protected]31e0749c2014-06-12 19:55:11241
[email protected]44a5a362014-05-30 20:01:51242 # Not tested on Android yet:
[email protected]abd4b682014-07-16 20:26:30243 "//google_apis/gcm",
Brett Wilson1c693992014-08-25 19:10:01244 "//remoting/client/plugin",
pilgrim4af8c212014-09-05 17:30:15245 "//storage/browser",
[email protected]b9f4c682014-07-10 22:00:37246 "//third_party/cld_2",
[email protected]822d467b2014-06-19 19:00:43247 "//third_party/ffmpeg",
[email protected]6e44c302014-07-22 21:51:37248 "//ui/app_list",
[email protected]604828c2014-07-02 20:39:12249 "//ui/web_dialogs",
[email protected]5a8d5162014-04-12 01:19:16250 ]
251 }
[email protected]378b4f02014-06-10 15:58:45252
253 if (use_ozone) {
254 deps += [
[email protected]4c5e36b2014-07-24 20:44:16255 "//ui/ozone",
256 "//ui/ozone/demo",
[email protected]378b4f02014-06-10 15:58:45257 ]
258 }
reillygd77718d2014-09-04 00:57:56259
260 # Non-mobile builds.
261 if (!is_android && !is_ios) {
262 deps += [
263 "//device/usb",
tsepez23eb1c22014-11-14 23:12:50264 "//third_party/pdfium/samples",
reillygd77718d2014-09-04 00:57:56265 ]
266 }
dpranke43760592014-11-08 02:59:57267
scottmg34fb7e52014-12-03 23:27:24268 #
dprankecf8465db72014-11-10 23:51:22269 # TODO(GYP): Make everything below this work in the GN build.
270 #
271
272 if (is_mac) {
dprankecf8465db72014-11-10 23:51:22273 # TODO(dpranke): These are as-yet untriaged but need at least the above.
dpranke43760592014-11-08 02:59:57274 deps -= [
275 "//apps",
276 "//ash",
277 "//chrome/browser",
278 "//chrome/browser/devtools",
279 "//chrome/common",
280 "//chrome/plugin",
281 "//chrome/renderer",
dprankecf8465db72014-11-10 23:51:22282 "//chrome/test",
283 "//chrome/utility",
284 "//components:all_components",
285 "//content/shell:content_shell",
286 "//extensions/browser",
287 "//extensions/common",
288 "//extensions/common/api",
289 "//extensions/renderer",
290 "//remoting/client/plugin",
291 "//third_party/usrsctp",
dpranke380390f2014-11-21 06:08:53292 "//ui/app_list",
dprankecf8465db72014-11-10 23:51:22293 "//ui/aura",
294 "//ui/keyboard",
295 "//ui/views",
296 "//ui/views/controls/webview",
297 "//ui/web_dialogs",
298 ]
299 }
300
mohsenf837da7c2014-12-09 19:01:34301 if (is_mac || is_ios) {
302 deps -= [
303 "//ui/touch_selection",
304 ]
305 }
306
dprankecf8465db72014-11-10 23:51:22307 if (is_win) {
308 deps -= [
309 "//apps",
310 "//ash",
311 "//chrome/browser",
312 "//chrome/browser/devtools",
313 "//chrome/common",
314 "//chrome/plugin",
315 "//chrome/renderer",
316 "//chrome/test",
dpranke43760592014-11-08 02:59:57317 "//chrome/utility",
318 "//components:all_components",
319 "//cc",
320 "//cc/blink",
321 "//content",
322 "//content/shell:content_shell",
323 "//content/test:test_support",
324 "//device/bluetooth",
325 "//extensions/browser",
326 "//extensions/common",
327 "//extensions/common/api",
328 "//extensions/renderer",
329 "//gpu",
330 "//google_apis",
331 "//google_apis/gcm",
332 "//jingle:notifier",
333 "//media",
334 "//media/blink",
335 "//media/cast",
336 "//media/mojo",
337 "//mojo",
338 "//pdf",
339 "//ppapi:ppapi_c",
340 "//printing",
341 "//remoting/client/plugin",
342 "//sandbox",
343 "//storage/browser",
344 "//sync",
345 "//third_party/WebKit/public:all_blink",
346 "//third_party/angle:translator",
dprankede7d0dc2014-11-18 01:54:55347 "//third_party/ffmpeg",
dpranke43760592014-11-08 02:59:57348 "//third_party/leveldatabase",
349 "//third_party/libjingle",
350 "//third_party/usrsctp",
351 "//third_party/webrtc",
352 "//ui/accessibility",
353 "//ui/app_list",
354 "//ui/aura",
355 "//ui/base",
356 "//ui/display",
357 "//ui/events",
358 "//ui/gfx",
359 "//ui/gl",
360 "//ui/keyboard",
361 "//ui/native_theme",
362 "//ui/snapshot",
363 "//ui/surface",
mohsenf837da7c2014-12-09 19:01:34364 "//ui/touch_selection",
dpranke43760592014-11-08 02:59:57365 "//ui/views",
366 "//ui/views/controls/webview",
367 "//ui/web_dialogs",
368 "//ui/wm",
369 ]
370 }
[email protected]f0e7ff882013-12-26 21:23:09371}