blob: 5206979d1d6b7a36bc1eae114606cb33354c18df [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",
[email protected]6f9866a2014-07-26 20:06:3552 "//extensions/browser",
[email protected]4205a96e2014-07-23 14:08:1853 "//extensions/common",
[email protected]abd4b682014-07-16 20:26:3054 "//extensions/common/api",
[email protected]60e3e7182014-07-28 23:14:0355 "//extensions/renderer",
[email protected]8f2cee02014-05-22 23:19:2556 "//gin",
[email protected]d05751a22014-05-29 20:54:2457 "//gpu",
[email protected]b2b2bf52014-05-28 20:26:5758 "//google_apis",
[email protected]abd4b682014-07-16 20:26:3059 "//google_apis/gcm",
[email protected]517d5282014-04-02 17:03:3060 "//ipc",
[email protected]64860882014-08-04 23:44:1761 "//ipc/mojo",
ajwongf7b1cb692014-08-23 21:36:2262 "//jingle:notifier",
[email protected]0d0bd382014-07-16 20:14:0663 "//media",
acolwell9e0840d2014-09-06 19:01:3264 "//media/blink",
[email protected]c6101192014-07-31 08:56:2665 "//media/cast",
tim09f86c052014-09-18 22:10:1466 "//media/mojo",
[email protected]9a1526b2014-04-30 05:27:0667 "//mojo",
[email protected]4625ade2014-04-15 19:26:4468 "//net",
[email protected]71319202014-06-05 23:19:2869 "//pdf",
[email protected]240e3032014-05-27 20:15:2070 "//ppapi:ppapi_c",
[email protected]fc2020f2014-06-04 18:09:3971 "//printing",
Brett Wilson1c693992014-08-25 19:10:0172 "//remoting/client/plugin",
[email protected]543f171c2014-06-04 22:00:4173 "//sandbox",
[email protected]c7e9f4942014-06-02 17:40:3074 "//sdch",
[email protected]1b87123d2014-04-12 10:37:1975 "//skia",
pilgrim4af8c212014-09-05 17:30:1576 "//storage/browser",
[email protected]b2b2bf52014-05-28 20:26:5777 "//sql",
[email protected]f8ae9a4f2014-08-07 00:05:2078 "//sync",
[email protected]f9a32062014-06-21 20:20:3579 "//third_party/WebKit/public:all_blink",
[email protected]3a98c812014-05-30 00:52:3680 "//third_party/angle:translator",
[email protected]cceca60d2014-05-13 02:23:3481 "//third_party/brotli",
[email protected]797b25042014-07-01 23:54:1782 "//third_party/cacheinvalidation",
[email protected]b9f4c682014-07-10 22:00:3783 "//third_party/cld",
84 "//third_party/cld_2",
[email protected]822d467b2014-06-19 19:00:4385 "//third_party/ffmpeg",
[email protected]5c10cca42014-06-12 19:37:2886 "//third_party/flac",
[email protected]c67679f2014-05-21 16:53:1987 "//third_party/harfbuzz-ng",
[email protected]f9a32062014-06-21 20:20:3588 "//third_party/hunspell",
[email protected]cceca60d2014-05-13 02:23:3489 "//third_party/iccjpeg",
[email protected]cb3421f2014-04-14 00:42:4890 "//third_party/icu",
[email protected]1b87123d2014-04-12 10:37:1991 "//third_party/leveldatabase",
[email protected]fca567b2014-07-02 17:37:3492 "//third_party/libphonenumber",
ajwongf7b1cb692014-08-23 21:36:2293 "//third_party/libjingle",
[email protected]a9155082014-04-06 06:55:0894 "//third_party/libpng",
[email protected]0133ad72014-07-01 07:03:2595 "//third_party/libsrtp",
[email protected]1d6b6062014-04-08 17:42:1496 "//third_party/libusb",
[email protected]f087aad2014-05-16 18:16:1397 "//third_party/libwebm",
[email protected]4b08b342014-04-16 03:01:0398 "//third_party/libwebp",
[email protected]d62c51e2014-06-12 21:56:1199 "//third_party/libxslt",
brettwbf20b732014-09-16 23:57:41100 "//third_party/libvpx",
[email protected]543f171c2014-06-04 22:00:41101 "//third_party/libyuv",
[email protected]dab154ee2014-06-13 23:48:50102 "//third_party/lzma_sdk",
[email protected]f1782d92014-06-03 23:14:20103 "//third_party/mesa",
[email protected]1da2cde2014-07-01 14:16:36104 "//third_party/opus",
[email protected]cceca60d2014-05-13 02:23:34105 "//third_party/ots",
[email protected]ff6d0962014-05-22 23:21:23106 "//third_party/protobuf:protobuf_lite",
[email protected]cceca60d2014-05-13 02:23:34107 "//third_party/qcms",
[email protected]a9155082014-04-06 06:55:08108 "//third_party/re2",
[email protected]7b31c832014-04-09 02:08:44109 "//third_party/smhasher:cityhash",
110 "//third_party/smhasher:murmurhash3",
111 "//third_party/smhasher:pmurhash",
[email protected]171e3ad2014-06-26 23:11:12112 "//third_party/snappy",
[email protected]5c10cca42014-06-12 19:37:28113 "//third_party/speex",
Brett Wilsonc63f22b2014-09-02 21:59:57114 "//third_party/usrsctp",
[email protected]824288842014-06-20 05:26:59115 "//third_party/widevine/cdm:version_h",
kjellander91966d302014-08-25 16:07:55116 "//third_party/webrtc",
[email protected]a9155082014-04-06 06:55:08117 "//third_party/zlib",
[email protected]71eb1122014-05-06 04:25:26118 "//third_party:jpeg",
[email protected]f0e7ff882013-12-26 21:23:09119 "//tools/gn",
[email protected]938c54d2014-07-23 21:15:14120 "//tools/imagediff($host_toolchain)",
tfarinad22dcfd2014-09-09 17:21:19121 "//ui/accessibility",
[email protected]6e44c302014-07-22 21:51:37122 "//ui/app_list",
[email protected]bd56a5b2014-06-07 04:09:29123 "//ui/aura",
[email protected]52140d882014-05-30 19:22:40124 "//ui/base",
[email protected]a1d7d4f2014-07-16 21:33:36125 "//ui/display",
[email protected]06d41872014-04-09 01:18:44126 "//ui/events",
[email protected]07a8725b2014-04-10 21:16:59127 "//ui/gfx",
[email protected]1ea01752014-05-23 19:01:46128 "//ui/gl",
[email protected]604828c2014-07-02 20:39:12129 "//ui/keyboard",
[email protected]a306aaa2014-05-24 13:21:50130 "//ui/native_theme",
[email protected]4c047c02014-04-21 22:41:19131 "//ui/resources",
[email protected]52140d882014-05-30 19:22:40132 "//ui/snapshot",
[email protected]e3d74862014-05-18 14:12:27133 "//ui/strings",
[email protected]0311d4c2014-05-17 04:55:16134 "//ui/surface",
[email protected]cbba05a2014-07-16 00:08:26135 "//ui/views",
[email protected]a1d7d4f2014-07-16 21:33:36136 "//ui/views/controls/webview",
[email protected]604828c2014-07-02 20:39:12137 "//ui/web_dialogs",
[email protected]4b6d32d2014-04-02 17:08:15138 "//url",
[email protected]fa5e2bb2014-06-02 14:29:09139 "//v8:v8",
brettwb84b29472014-10-22 22:58:45140 ] + root_extra_deps
[email protected]fce5c3fe2014-04-10 21:13:05141
[email protected]6fa82cc2014-06-18 20:33:07142 if (!is_win) {
[email protected]f8d55d32014-06-19 20:02:29143 deps += [ "//breakpad:symupload" ]
[email protected]6fa82cc2014-06-18 20:33:07144 }
145
[email protected]fce5c3fe2014-04-10 21:13:05146 if (is_linux) {
147 deps += [
[email protected]886323c2014-06-14 20:34:16148 "//dbus",
[email protected]8acc5f52014-05-31 22:16:30149 "//third_party/fontconfig",
[email protected]fce5c3fe2014-04-10 21:13:05150 "//third_party/freetype2",
151 ]
152 }
[email protected]5a8d5162014-04-12 01:19:16153
[email protected]6b9028ab2014-07-23 17:15:38154 if (use_x11) {
155 deps += [ "//tools/xdisplaycheck" ]
156 }
157
James Robinson060f2e32014-09-10 22:31:37158 if (use_aura) {
159 deps += [ "//ui/wm" ]
160 }
161
[email protected]a306aaa2014-05-24 13:21:50162 if (is_win) {
163 deps += [
164 "//ui/metro_viewer",
165 ]
166 }
167
[email protected]2d6893a2014-06-02 19:16:36168 if (is_win || is_mac || is_chromeos) {
169 # RLZ works on these platforms.
170 deps += [
171 "//rlz:rlz_lib",
172 ]
173 }
174
[email protected]137dff6d2014-06-12 19:35:55175 if (cpu_arch == "x86" || cpu_arch == "x64") {
176 # YASM is x86/x64 only.
177 deps += [ "//third_party/yasm($host_toolchain)" ]
178 }
179
[email protected]5a8d5162014-04-12 01:19:16180 if (is_android) {
[email protected]26046b52014-07-16 00:11:03181 deps += [
cjhopman31511332014-10-23 01:05:02182 "//base/android/linker:chromium_android_linker",
cjhopman3d85c6d2014-11-18 03:39:38183 "//build/android/gyp/test:hello_world",
cjhopman31511332014-10-23 01:05:02184 "//build/android/rezip",
cjhopmana19ca072014-09-16 02:45:33185 "//third_party/openmax_dl/dl",
cjhopmancd7694af2014-09-08 00:00:04186 "//content/shell/android:content_shell_apk",
cjhopman11a68cb2014-10-13 22:47:54187 "//chrome/android:chrome_shell_apk",
cjhopman4fe114e2014-10-16 18:02:23188 "//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk",
[email protected]684b2292014-08-22 19:12:39189 "//ui/android:ui_java",
[email protected]684b2292014-08-22 19:12:39190 "//third_party/android_tools:android_gcm_java",
191 "//third_party/android_tools:uiautomator_java",
192 "//third_party/android_tools:android_support_v13_java",
193 "//third_party/android_tools:android_support_v7_appcompat_java",
194 "//third_party/android_tools:android_support_v7_mediarouter_java",
cjhopmandad5f4272014-09-05 01:00:55195 "//third_party/eyesfree:eyesfree_java",
[email protected]26046b52014-07-16 00:11:03196 ]
197
cjhopmanca675d3e2014-10-24 03:50:45198 if (has_chrome_android_internal) {
199 deps += [
200 "//clank",
201 ]
202 }
203
dprankecf8465db72014-11-10 23:51:22204 # TODO(GYP): Move the targets in the rest of this block that still
205 # need to be made to work in the GN build to the bottom of the file
206 # so that all the remaining work is located in one place in the file.
207 # This block should contain only the targets that aren't actually
208 # needed on Android.
209
[email protected]5a8d5162014-04-12 01:19:16210 deps -= [
[email protected]f5607902014-08-21 19:14:57211 "//apps", # Needs testing.
James Robinson2ed4d692014-09-17 05:20:58212 "//chrome/browser",
213 "//chrome/browser/devtools",
214 "//chrome/common",
215 "//chrome/plugin",
216 "//chrome/renderer",
Brett Wilson32ce17a2014-11-10 17:45:30217 "//chrome/test",
218 "//chrome/tools",
James Robinson2ed4d692014-09-17 05:20:58219 "//chrome/utility",
James Robinson060f2e32014-09-10 22:31:37220 "//content/shell:content_shell",
[email protected]6f9866a2014-07-26 20:06:35221 "//extensions/browser",
[email protected]4205a96e2014-07-23 14:08:18222 "//extensions/common",
[email protected]fb2799e2014-07-15 23:50:29223 "//extensions/common/api",
[email protected]60e3e7182014-07-28 23:14:03224 "//extensions/renderer",
[email protected]71319202014-06-05 23:19:28225 "//pdf", # Not compiled on Android in GYP yet, either.
[email protected]240e3032014-05-27 20:15:20226 "//ppapi:ppapi_c",
[email protected]5a8d5162014-04-12 01:19:16227 "//third_party/libusb",
[email protected]604828c2014-07-02 20:39:12228 "//ui/keyboard", # Blocked on content.
[email protected]d62c51e2014-06-12 21:56:11229
230 # Seems to not be compiled on Android. Otherwise it will need a config.h.
231 "//third_party/libxslt",
232
[email protected]b27a3c72014-07-16 17:50:09233 # Not relevant to Android.
234 "//ash",
[email protected]5a8d5162014-04-12 01:19:16235 "//tools/gn",
[email protected]bd56a5b2014-06-07 04:09:29236 "//ui/aura",
[email protected]a1d7d4f2014-07-16 21:33:36237 "//ui/display",
[email protected]cbba05a2014-07-16 00:08:26238 "//ui/views",
[email protected]a1d7d4f2014-07-16 21:33:36239 "//ui/views/controls/webview",
[email protected]df3ecfde2014-05-20 21:52:34240
[email protected]31e0749c2014-06-12 19:55:11241 # Fails on Android for unknown reasons.
242 "//third_party/flac",
[email protected]f8d55d32014-06-19 20:02:29243 "//breakpad:symupload",
[email protected]31e0749c2014-06-12 19:55:11244
[email protected]44a5a362014-05-30 20:01:51245 # Not tested on Android yet:
[email protected]abd4b682014-07-16 20:26:30246 "//google_apis/gcm",
Brett Wilson1c693992014-08-25 19:10:01247 "//remoting/client/plugin",
pilgrim4af8c212014-09-05 17:30:15248 "//storage/browser",
[email protected]b9f4c682014-07-10 22:00:37249 "//third_party/cld_2",
[email protected]822d467b2014-06-19 19:00:43250 "//third_party/ffmpeg",
[email protected]6e44c302014-07-22 21:51:37251 "//ui/app_list",
[email protected]604828c2014-07-02 20:39:12252 "//ui/web_dialogs",
[email protected]5a8d5162014-04-12 01:19:16253 ]
254 }
[email protected]378b4f02014-06-10 15:58:45255
256 if (use_ozone) {
257 deps += [
[email protected]4c5e36b2014-07-24 20:44:16258 "//ui/ozone",
259 "//ui/ozone/demo",
[email protected]378b4f02014-06-10 15:58:45260 ]
261 }
reillygd77718d2014-09-04 00:57:56262
263 # Non-mobile builds.
264 if (!is_android && !is_ios) {
265 deps += [
266 "//device/usb",
tsepez23eb1c22014-11-14 23:12:50267 "//third_party/pdfium/samples",
reillygd77718d2014-09-04 00:57:56268 ]
269 }
dpranke43760592014-11-08 02:59:57270
dprankecf8465db72014-11-10 23:51:22271 #
272 # TODO(GYP): Make everything below this work in the GN build.
273 #
274
275 if (is_mac) {
276 # TODO(dpranke): Need to fix the unused function errors in breakpad.
277 deps -= [
278 "//breakpad:symupload"
279 ]
280
281 # TODO(dpranke): These need a webrtc fix in order to build.
282 deps -= [
283 "//jingle:notifier",
284 "//third_party/libjingle",
285 "//third_party/webrtc",
286 ]
287
288 # TODO(dpranke): These depend on Blink and need Blink fixes to build.
289 deps -= [
290 "//cc/blink",
291 "//content",
292 "//content/test:test_support",
293 "//media/blink",
294 "//pdf",
295 "//ppapi:ppapi_c",
296 "//third_party/WebKit/public:all_blink",
297 "//ui/app_list",
298 ]
299
300 # TODO(dpranke): These are as-yet untriaged but need at least the above.
dpranke43760592014-11-08 02:59:57301 deps -= [
302 "//apps",
303 "//ash",
304 "//chrome/browser",
305 "//chrome/browser/devtools",
306 "//chrome/common",
307 "//chrome/plugin",
308 "//chrome/renderer",
dprankecf8465db72014-11-10 23:51:22309 "//chrome/test",
310 "//chrome/utility",
311 "//components:all_components",
312 "//content/shell:content_shell",
313 "//extensions/browser",
314 "//extensions/common",
315 "//extensions/common/api",
316 "//extensions/renderer",
317 "//remoting/client/plugin",
318 "//third_party/usrsctp",
319 "//ui/aura",
320 "//ui/keyboard",
321 "//ui/views",
322 "//ui/views/controls/webview",
323 "//ui/web_dialogs",
324 ]
325 }
326
327 if (is_win) {
328 deps -= [
329 "//apps",
330 "//ash",
331 "//chrome/browser",
332 "//chrome/browser/devtools",
333 "//chrome/common",
334 "//chrome/plugin",
335 "//chrome/renderer",
336 "//chrome/test",
dpranke43760592014-11-08 02:59:57337 "//chrome/utility",
338 "//components:all_components",
339 "//cc",
340 "//cc/blink",
341 "//content",
342 "//content/shell:content_shell",
343 "//content/test:test_support",
344 "//device/bluetooth",
345 "//extensions/browser",
346 "//extensions/common",
347 "//extensions/common/api",
348 "//extensions/renderer",
349 "//gpu",
350 "//google_apis",
351 "//google_apis/gcm",
352 "//jingle:notifier",
353 "//media",
354 "//media/blink",
355 "//media/cast",
356 "//media/mojo",
357 "//mojo",
358 "//pdf",
359 "//ppapi:ppapi_c",
360 "//printing",
361 "//remoting/client/plugin",
362 "//sandbox",
363 "//storage/browser",
364 "//sync",
365 "//third_party/WebKit/public:all_blink",
366 "//third_party/angle:translator",
dprankede7d0dc2014-11-18 01:54:55367 "//third_party/ffmpeg",
dpranke43760592014-11-08 02:59:57368 "//third_party/leveldatabase",
369 "//third_party/libjingle",
370 "//third_party/usrsctp",
371 "//third_party/webrtc",
372 "//ui/accessibility",
373 "//ui/app_list",
374 "//ui/aura",
375 "//ui/base",
376 "//ui/display",
377 "//ui/events",
378 "//ui/gfx",
379 "//ui/gl",
380 "//ui/keyboard",
381 "//ui/native_theme",
382 "//ui/snapshot",
383 "//ui/surface",
384 "//ui/views",
385 "//ui/views/controls/webview",
386 "//ui/web_dialogs",
387 "//ui/wm",
388 ]
389 }
[email protected]f0e7ff882013-12-26 21:23:09390}