blob: e3bf2587d3f46fa5f7d439d84dfe6b1278a2a9a2 [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",
[email protected]abd4b682014-07-16 20:26:3047 "//device/bluetooth",
48 "//device/nfc",
[email protected]6f9866a2014-07-26 20:06:3549 "//extensions/browser",
[email protected]4205a96e2014-07-23 14:08:1850 "//extensions/common",
[email protected]abd4b682014-07-16 20:26:3051 "//extensions/common/api",
[email protected]60e3e7182014-07-28 23:14:0352 "//extensions/renderer",
[email protected]8f2cee02014-05-22 23:19:2553 "//gin",
[email protected]d05751a22014-05-29 20:54:2454 "//gpu",
[email protected]b2b2bf52014-05-28 20:26:5755 "//google_apis",
[email protected]abd4b682014-07-16 20:26:3056 "//google_apis/gcm",
[email protected]517d5282014-04-02 17:03:3057 "//ipc",
[email protected]64860882014-08-04 23:44:1758 "//ipc/mojo",
ajwongf7b1cb692014-08-23 21:36:2259 "//jingle:notifier",
[email protected]0d0bd382014-07-16 20:14:0660 "//media",
acolwell9e0840d2014-09-06 19:01:3261 "//media/blink",
[email protected]c6101192014-07-31 08:56:2662 "//media/cast",
tim09f86c052014-09-18 22:10:1463 "//media/mojo",
[email protected]9a1526b2014-04-30 05:27:0664 "//mojo",
[email protected]4625ade2014-04-15 19:26:4465 "//net",
[email protected]71319202014-06-05 23:19:2866 "//pdf",
[email protected]240e3032014-05-27 20:15:2067 "//ppapi:ppapi_c",
[email protected]fc2020f2014-06-04 18:09:3968 "//printing",
Brett Wilson1c693992014-08-25 19:10:0169 "//remoting/client/plugin",
[email protected]543f171c2014-06-04 22:00:4170 "//sandbox",
[email protected]c7e9f4942014-06-02 17:40:3071 "//sdch",
[email protected]1b87123d2014-04-12 10:37:1972 "//skia",
pilgrim4af8c212014-09-05 17:30:1573 "//storage/browser",
[email protected]b2b2bf52014-05-28 20:26:5774 "//sql",
[email protected]f8ae9a4f2014-08-07 00:05:2075 "//sync",
[email protected]f9a32062014-06-21 20:20:3576 "//third_party/WebKit/public:all_blink",
[email protected]3a98c812014-05-30 00:52:3677 "//third_party/angle:translator",
[email protected]cceca60d2014-05-13 02:23:3478 "//third_party/brotli",
[email protected]797b25042014-07-01 23:54:1779 "//third_party/cacheinvalidation",
[email protected]b9f4c682014-07-10 22:00:3780 "//third_party/cld",
81 "//third_party/cld_2",
[email protected]822d467b2014-06-19 19:00:4382 "//third_party/ffmpeg",
[email protected]5c10cca42014-06-12 19:37:2883 "//third_party/flac",
[email protected]c67679f2014-05-21 16:53:1984 "//third_party/harfbuzz-ng",
[email protected]f9a32062014-06-21 20:20:3585 "//third_party/hunspell",
[email protected]cceca60d2014-05-13 02:23:3486 "//third_party/iccjpeg",
[email protected]cb3421f2014-04-14 00:42:4887 "//third_party/icu",
[email protected]1b87123d2014-04-12 10:37:1988 "//third_party/leveldatabase",
[email protected]fca567b2014-07-02 17:37:3489 "//third_party/libphonenumber",
ajwongf7b1cb692014-08-23 21:36:2290 "//third_party/libjingle",
[email protected]a9155082014-04-06 06:55:0891 "//third_party/libpng",
[email protected]0133ad72014-07-01 07:03:2592 "//third_party/libsrtp",
[email protected]1d6b6062014-04-08 17:42:1493 "//third_party/libusb",
[email protected]f087aad2014-05-16 18:16:1394 "//third_party/libwebm",
[email protected]4b08b342014-04-16 03:01:0395 "//third_party/libwebp",
[email protected]d62c51e2014-06-12 21:56:1196 "//third_party/libxslt",
brettwbf20b732014-09-16 23:57:4197 "//third_party/libvpx",
[email protected]543f171c2014-06-04 22:00:4198 "//third_party/libyuv",
[email protected]dab154ee2014-06-13 23:48:5099 "//third_party/lzma_sdk",
[email protected]f1782d92014-06-03 23:14:20100 "//third_party/mesa",
[email protected]1da2cde2014-07-01 14:16:36101 "//third_party/opus",
[email protected]cceca60d2014-05-13 02:23:34102 "//third_party/ots",
[email protected]ff6d0962014-05-22 23:21:23103 "//third_party/protobuf:protobuf_lite",
[email protected]cceca60d2014-05-13 02:23:34104 "//third_party/qcms",
[email protected]a9155082014-04-06 06:55:08105 "//third_party/re2",
[email protected]7b31c832014-04-09 02:08:44106 "//third_party/smhasher:cityhash",
107 "//third_party/smhasher:murmurhash3",
108 "//third_party/smhasher:pmurhash",
[email protected]171e3ad2014-06-26 23:11:12109 "//third_party/snappy",
[email protected]5c10cca42014-06-12 19:37:28110 "//third_party/speex",
Brett Wilsonc63f22b2014-09-02 21:59:57111 "//third_party/usrsctp",
[email protected]824288842014-06-20 05:26:59112 "//third_party/widevine/cdm:version_h",
kjellander91966d302014-08-25 16:07:55113 "//third_party/webrtc",
[email protected]a9155082014-04-06 06:55:08114 "//third_party/zlib",
[email protected]71eb1122014-05-06 04:25:26115 "//third_party:jpeg",
[email protected]f0e7ff882013-12-26 21:23:09116 "//tools/gn",
[email protected]938c54d2014-07-23 21:15:14117 "//tools/imagediff($host_toolchain)",
tfarinad22dcfd2014-09-09 17:21:19118 "//ui/accessibility",
[email protected]6e44c302014-07-22 21:51:37119 "//ui/app_list",
[email protected]bd56a5b2014-06-07 04:09:29120 "//ui/aura",
[email protected]52140d882014-05-30 19:22:40121 "//ui/base",
[email protected]a1d7d4f2014-07-16 21:33:36122 "//ui/display",
[email protected]06d41872014-04-09 01:18:44123 "//ui/events",
[email protected]07a8725b2014-04-10 21:16:59124 "//ui/gfx",
[email protected]1ea01752014-05-23 19:01:46125 "//ui/gl",
[email protected]604828c2014-07-02 20:39:12126 "//ui/keyboard",
[email protected]a306aaa2014-05-24 13:21:50127 "//ui/native_theme",
[email protected]4c047c02014-04-21 22:41:19128 "//ui/resources",
[email protected]52140d882014-05-30 19:22:40129 "//ui/snapshot",
[email protected]e3d74862014-05-18 14:12:27130 "//ui/strings",
[email protected]0311d4c2014-05-17 04:55:16131 "//ui/surface",
[email protected]cbba05a2014-07-16 00:08:26132 "//ui/views",
[email protected]a1d7d4f2014-07-16 21:33:36133 "//ui/views/controls/webview",
[email protected]604828c2014-07-02 20:39:12134 "//ui/web_dialogs",
[email protected]4b6d32d2014-04-02 17:08:15135 "//url",
[email protected]fa5e2bb2014-06-02 14:29:09136 "//v8:v8",
brettwb84b29472014-10-22 22:58:45137 ] + root_extra_deps
[email protected]fce5c3fe2014-04-10 21:13:05138
[email protected]6fa82cc2014-06-18 20:33:07139 if (!is_win) {
[email protected]f8d55d32014-06-19 20:02:29140 deps += [ "//breakpad:symupload" ]
[email protected]6fa82cc2014-06-18 20:33:07141 }
142
[email protected]fce5c3fe2014-04-10 21:13:05143 if (is_linux) {
144 deps += [
[email protected]886323c2014-06-14 20:34:16145 "//dbus",
[email protected]8acc5f52014-05-31 22:16:30146 "//third_party/fontconfig",
[email protected]fce5c3fe2014-04-10 21:13:05147 "//third_party/freetype2",
148 ]
149 }
[email protected]5a8d5162014-04-12 01:19:16150
[email protected]6b9028ab2014-07-23 17:15:38151 if (use_x11) {
152 deps += [ "//tools/xdisplaycheck" ]
153 }
154
James Robinson060f2e32014-09-10 22:31:37155 if (use_aura) {
156 deps += [ "//ui/wm" ]
157 }
158
[email protected]a306aaa2014-05-24 13:21:50159 if (is_win) {
160 deps += [
161 "//ui/metro_viewer",
162 ]
163 }
164
[email protected]2d6893a2014-06-02 19:16:36165 if (is_win || is_mac || is_chromeos) {
166 # RLZ works on these platforms.
167 deps += [
168 "//rlz:rlz_lib",
169 ]
170 }
171
[email protected]137dff6d2014-06-12 19:35:55172 if (cpu_arch == "x86" || cpu_arch == "x64") {
173 # YASM is x86/x64 only.
174 deps += [ "//third_party/yasm($host_toolchain)" ]
175 }
176
[email protected]5a8d5162014-04-12 01:19:16177 if (is_android) {
[email protected]26046b52014-07-16 00:11:03178 deps += [
cjhopman31511332014-10-23 01:05:02179 "//base/android/linker:chromium_android_linker",
180 "//build/android/rezip",
cjhopmana19ca072014-09-16 02:45:33181 "//third_party/openmax_dl/dl",
cjhopmancd7694af2014-09-08 00:00:04182 "//content/shell/android:content_shell_apk",
cjhopman11a68cb2014-10-13 22:47:54183 "//chrome/android:chrome_shell_apk",
cjhopman4fe114e2014-10-16 18:02:23184 "//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk",
[email protected]684b2292014-08-22 19:12:39185 "//ui/android:ui_java",
[email protected]684b2292014-08-22 19:12:39186 "//third_party/android_tools:android_gcm_java",
187 "//third_party/android_tools:uiautomator_java",
188 "//third_party/android_tools:android_support_v13_java",
189 "//third_party/android_tools:android_support_v7_appcompat_java",
190 "//third_party/android_tools:android_support_v7_mediarouter_java",
cjhopmandad5f4272014-09-05 01:00:55191 "//third_party/eyesfree:eyesfree_java",
[email protected]26046b52014-07-16 00:11:03192 ]
193
cjhopmanca675d3e2014-10-24 03:50:45194 if (has_chrome_android_internal) {
195 deps += [
196 "//clank",
197 ]
198 }
199
[email protected]5a8d5162014-04-12 01:19:16200 deps -= [
[email protected]f5607902014-08-21 19:14:57201 "//apps", # Needs testing.
James Robinson2ed4d692014-09-17 05:20:58202 "//chrome/browser",
203 "//chrome/browser/devtools",
204 "//chrome/common",
205 "//chrome/plugin",
206 "//chrome/renderer",
207 "//chrome/utility",
James Robinson060f2e32014-09-10 22:31:37208 "//content/shell:content_shell",
[email protected]6f9866a2014-07-26 20:06:35209 "//extensions/browser",
[email protected]4205a96e2014-07-23 14:08:18210 "//extensions/common",
[email protected]fb2799e2014-07-15 23:50:29211 "//extensions/common/api",
[email protected]60e3e7182014-07-28 23:14:03212 "//extensions/renderer",
[email protected]71319202014-06-05 23:19:28213 "//pdf", # Not compiled on Android in GYP yet, either.
[email protected]240e3032014-05-27 20:15:20214 "//ppapi:ppapi_c",
[email protected]5a8d5162014-04-12 01:19:16215 "//third_party/libusb",
[email protected]604828c2014-07-02 20:39:12216 "//ui/keyboard", # Blocked on content.
[email protected]d62c51e2014-06-12 21:56:11217
218 # Seems to not be compiled on Android. Otherwise it will need a config.h.
219 "//third_party/libxslt",
220
[email protected]b27a3c72014-07-16 17:50:09221 # Not relevant to Android.
222 "//ash",
[email protected]5a8d5162014-04-12 01:19:16223 "//tools/gn",
[email protected]bd56a5b2014-06-07 04:09:29224 "//ui/aura",
[email protected]a1d7d4f2014-07-16 21:33:36225 "//ui/display",
[email protected]cbba05a2014-07-16 00:08:26226 "//ui/views",
[email protected]a1d7d4f2014-07-16 21:33:36227 "//ui/views/controls/webview",
[email protected]df3ecfde2014-05-20 21:52:34228
[email protected]31e0749c2014-06-12 19:55:11229 # Fails on Android for unknown reasons.
230 "//third_party/flac",
[email protected]f8d55d32014-06-19 20:02:29231 "//breakpad:symupload",
[email protected]31e0749c2014-06-12 19:55:11232
[email protected]44a5a362014-05-30 20:01:51233 # Not tested on Android yet:
[email protected]abd4b682014-07-16 20:26:30234 "//google_apis/gcm",
Brett Wilson1c693992014-08-25 19:10:01235 "//remoting/client/plugin",
pilgrim4af8c212014-09-05 17:30:15236 "//storage/browser",
[email protected]b9f4c682014-07-10 22:00:37237 "//third_party/cld_2",
[email protected]822d467b2014-06-19 19:00:43238 "//third_party/ffmpeg",
[email protected]6e44c302014-07-22 21:51:37239 "//ui/app_list",
[email protected]604828c2014-07-02 20:39:12240 "//ui/web_dialogs",
[email protected]5a8d5162014-04-12 01:19:16241 ]
242 }
[email protected]378b4f02014-06-10 15:58:45243
244 if (use_ozone) {
245 deps += [
[email protected]4c5e36b2014-07-24 20:44:16246 "//ui/ozone",
247 "//ui/ozone/demo",
[email protected]378b4f02014-06-10 15:58:45248 ]
249 }
reillygd77718d2014-09-04 00:57:56250
251 # Non-mobile builds.
252 if (!is_android && !is_ios) {
253 deps += [
254 "//device/usb",
255 ]
256 }
[email protected]f0e7ff882013-12-26 21:23:09257}