blob: 674295487db6989269a8fd3df9529ce430bdeda8 [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",
brettwf7eb6ca2015-02-14 01:37:3171 "//ppapi/examples",
[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]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",
mohsenf837da7c2014-12-09 19:01:34135 "//ui/touch_selection",
[email protected]cbba05a2014-07-16 00:08:26136 "//ui/views",
[email protected]a1d7d4f2014-07-16 21:33:36137 "//ui/views/controls/webview",
[email protected]604828c2014-07-02 20:39:12138 "//ui/web_dialogs",
[email protected]4b6d32d2014-04-02 17:08:15139 "//url",
[email protected]fa5e2bb2014-06-02 14:29:09140 "//v8:v8",
scottmg34fb7e52014-12-03 23:27:24141 ]
142 deps += root_extra_deps
[email protected]fce5c3fe2014-04-10 21:13:05143
[email protected]6fa82cc2014-06-18 20:33:07144 if (!is_win) {
[email protected]f8d55d32014-06-19 20:02:29145 deps += [ "//breakpad:symupload" ]
[email protected]6fa82cc2014-06-18 20:33:07146 }
147
[email protected]fce5c3fe2014-04-10 21:13:05148 if (is_linux) {
149 deps += [
[email protected]886323c2014-06-14 20:34:16150 "//dbus",
[email protected]8acc5f52014-05-31 22:16:30151 "//third_party/fontconfig",
[email protected]fce5c3fe2014-04-10 21:13:05152 "//third_party/freetype2",
153 ]
154 }
[email protected]5a8d5162014-04-12 01:19:16155
[email protected]6b9028ab2014-07-23 17:15:38156 if (use_x11) {
157 deps += [ "//tools/xdisplaycheck" ]
158 }
159
James Robinson060f2e32014-09-10 22:31:37160 if (use_aura) {
161 deps += [ "//ui/wm" ]
162 }
163
[email protected]a306aaa2014-05-24 13:21:50164 if (is_win) {
scottmg34fb7e52014-12-03 23:27:24165 deps += [ "//ui/metro_viewer" ]
[email protected]a306aaa2014-05-24 13:21:50166 }
167
[email protected]2d6893a2014-06-02 19:16:36168 if (is_win || is_mac || is_chromeos) {
169 # RLZ works on these platforms.
scottmg34fb7e52014-12-03 23:27:24170 deps += [ "//rlz:rlz_lib" ]
[email protected]2d6893a2014-06-02 19:16:36171 }
172
dpranke43276212015-02-20 02:55:19173 if (current_cpu == "x86" || current_cpu == "x64") {
[email protected]137dff6d2014-06-12 19:35:55174 # 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",
cjhopman3d85c6d2014-11-18 03:39:38181 "//build/android/gyp/test:hello_world",
cjhopman31511332014-10-23 01:05:02182 "//build/android/rezip",
cjhopmana19ca072014-09-16 02:45:33183 "//third_party/openmax_dl/dl",
cjhopmancd7694af2014-09-08 00:00:04184 "//content/shell/android:content_shell_apk",
cjhopman11a68cb2014-10-13 22:47:54185 "//chrome/android:chrome_shell_apk",
cjhopman907644b2014-12-10 00:01:18186 "//chrome/test:test_support_unit",
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.
brettwf7eb6ca2015-02-14 01:37:31223 "//ppapi/examples",
[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",
tfarinacdc7e5d2015-02-23 09:52:24264 "//device:device_unittests",
tsepez23eb1c22014-11-14 23:12:50265 "//third_party/pdfium/samples",
reillygd77718d2014-09-04 00:57:56266 ]
267 }
dpranke43760592014-11-08 02:59:57268
scottmg34fb7e52014-12-03 23:27:24269 #
dprankecf8465db72014-11-10 23:51:22270 # TODO(GYP): Make everything below this work in the GN build.
271 #
272
273 if (is_mac) {
dprankecf8465db72014-11-10 23:51:22274 # TODO(dpranke): These are as-yet untriaged but need at least the above.
dpranke43760592014-11-08 02:59:57275 deps -= [
276 "//apps",
277 "//ash",
278 "//chrome/browser",
279 "//chrome/browser/devtools",
280 "//chrome/common",
281 "//chrome/plugin",
282 "//chrome/renderer",
dprankecf8465db72014-11-10 23:51:22283 "//chrome/test",
284 "//chrome/utility",
285 "//components:all_components",
286 "//content/shell:content_shell",
287 "//extensions/browser",
288 "//extensions/common",
289 "//extensions/common/api",
290 "//extensions/renderer",
291 "//remoting/client/plugin",
292 "//third_party/usrsctp",
dpranke380390f2014-11-21 06:08:53293 "//ui/app_list",
dprankecf8465db72014-11-10 23:51:22294 "//ui/aura",
295 "//ui/keyboard",
296 "//ui/views",
297 "//ui/views/controls/webview",
298 "//ui/web_dialogs",
299 ]
300 }
301
mohsenf837da7c2014-12-09 19:01:34302 if (is_mac || is_ios) {
vchigrin7aaefa6a2015-01-20 22:50:19303 deps -= [ "//ui/touch_selection" ]
mohsenf837da7c2014-12-09 19:01:34304 }
[email protected]f0e7ff882013-12-26 21:23:09305}