New OOBE implementation skeleton using WUG toolkit.
[chromium-blink-merge.git] / BUILD.gn
blobe06db5fb9cc6eea59e5f261cccb1208a3fc2bd92
1 # 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.
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.
11 import("//build/config/features.gni")
12 import("//build/config/ui.gni")
14 if (is_android) {
15   import("//build/config/android/config.gni")
18 declare_args() {
19   # A list of extra dependencies to add to the root target. This allows a
20   # checkout to add additional targets without explicitly changing any checked-
21   # in files.
22   root_extra_deps = []
25 # The "gn_all" target should list every root target (target that
26 # nothing else depends on) built by both GN and GYP. One should
27 # be able to run 'ninja gn_all gn_only gn_groups' and then run
28 # 'ninja' a second time and have the second ninja invocation do nothing.
30 # In addition, the "gn_all" target serves to pull in all of the other
31 # build files needed for the build.
33 # TODO(GYP): make sure that the above is true and there are scripts run
34 # on the bots that enforce this.
36 group("gn_all") {
37   testonly = true
39   deps = [
40     "//base:base_unittests",
41     "//cc:cc_unittests",
42     "//chrome",
43     "//chrome/test:browser_tests",
44     "//chrome/test:interactive_ui_tests",
45     "//chrome/test:sync_integration_tests",
46     "//chrome/test:unit_tests",
47     "//chrome/test/chromedriver:chromedriver_unittests",
48     "//components:components_unittests",
49     "//content/shell:content_shell",
50     "//content/test:content_browsertests",
51     "//content/test:content_perftests",
52     "//content/test:content_unittests",
53     "//crypto:crypto_unittests",
54     "//extensions:extensions_browsertests",
55     "//extensions:extensions_unittests",
56     "//google_apis/gcm:gcm_unit_tests",
57     "//gpu:gpu_unittests",
58     "//ipc:ipc_tests",
59     "//ipc/mojo:ipc_mojo_unittests",
60     "//jingle:jingle_unittests",
61     "//media:media_unittests",
62     "//media/cast:cast_unittests",
63     "//mojo",
64     "//mojo/common:mojo_common_unittests",
65     "//net:net_unittests",
66     "//ppapi:ppapi_unittests",
67     "//ppapi/examples",  # TODO(GYP): What's the GYP equivalent?
68     "//printing:printing_unittests",
69     "//skia:skia_unittests",
70     "//sql:sql_unittests",
71     "//sync:sync_unit_tests",
72     "//third_party/WebKit/public:blink_tests",
73     "//third_party/cacheinvalidation:cacheinvalidation_unittests",
74     "//third_party/codesighs",
75     "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests",
76     "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests",
77     "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests",
78     "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests",
79     "//third_party/mojo/src/mojo/edk/test:mojo_public_utility_unittests",
80     "//third_party/pdfium/samples:pdfium_test",
81     "//third_party/smhasher:pmurhash",
82     "//tools/imagediff($host_toolchain)",
83     "//tools/gn",
84     "//tools/gn:gn_unittests",
85     "//tools/telemetry:bitmaptools($host_toolchain)",
86     "//ui/accessibility:accessibility_unittests",
87     "//ui/app_list:app_list_unittests",
88     "//ui/base:ui_base_unittests",
89     "//ui/display:display_unittests",
90     "//ui/events:events_unittests",
91     "//ui/gfx:gfx_unittests",
92     "//ui/touch_selection:ui_touch_selection_unittests",
93     "//url:url_unittests",
94   ]
96   deps += root_extra_deps
98   # TODO(GYP): Get this working on the mac?
99   if (enable_extensions && !is_mac) {
100     deps += [ "//extensions/shell:app_shell_unittests" ]
101   }
103   if (!is_android) {
104     deps += [ "//remoting:remoting_unittests" ]
105   }
107   if (!is_win) {
108     deps += [ "//breakpad:symupload" ]
109   }
111   if (use_x11) {
112     deps += [ "//tools/xdisplaycheck" ]
113   }
115   if (toolkit_views) {
116     deps += [ "//ui/views:views_unittests" ]
117   }
119   if (use_aura) {
120     deps += [ "//ui/wm:wm_unittests" ]
121   }
123   if (use_ozone) {
124     deps += [
125       "//ui/ozone",
126       "//ui/ozone/demo",  # GN only
127     ]
128   }
130   if (is_win || is_mac || is_chromeos) {
131     # RLZ works on these platforms.
132     # TODO(GYP): Is this target needed, or pulled in automatically?
133     deps += [ "//rlz:rlz_lib" ]
134   }
136   if (is_android) {
137     deps += [
138       "//base/android/linker:chromium_android_linker",
139       "//build/android/gyp/test:hello_world",
140       "//build/android/rezip",
141       "//chrome/android:chrome_shell_apk",
142       "//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk",
143       "//tools/imagediff($host_toolchain)",
145       # TODO(GYP): Remove these when the components_unittests work.
146       "//components/history/core/test:test",
147       "//components/policy:policy_component_test_support",
148       "//components/policy:test_support",
149       "//components/rappor:test_support",
150       "//components/signin/core/browser:test_support",
151       "//components/sync_driver:test_support",
152       "//components/user_manager",
153       "//components/wallpaper",
154       "//content/shell/android:content_shell_apk",
156       # TODO(GYP): Are these needed, or will they be pulled in automatically?
157       "//third_party/android_tools:android_gcm_java",
158       "//third_party/android_tools:uiautomator_java",
159       "//third_party/android_tools:android_support_v13_java",
160       "//third_party/android_tools:android_support_v7_appcompat_java",
161       "//third_party/android_tools:android_support_v7_mediarouter_java",
162       "//third_party/mesa",
163       "//third_party/mockito:mockito_java",
164       "//third_party/openmax_dl/dl",
165       "//third_party/speex",
166       "//ui/android:ui_java",
168       # TODO(GYP): Are these needed?
169       "//chrome/test:test_support_unit",
170       "//third_party/smhasher:murmurhash3",
171       "//ui/message_center:test_support",
172     ]
173     deps -= [
174       "//breakpad:symupload",  # TODO(GYP) ??
175       "//chrome",  # TODO(GYP) ??
176       "//chrome/test:browser_tests",  # TODO(GYP) ??
177       "//chrome/test:interactive_ui_tests",  # TODO(GYP) ??
178       "//chrome/test:sync_integration_tests",  # TODO(GYP) ??
179       "//chrome/test:unit_tests",  # TODO(GYP)
181       # Chromedriver shouldn't be compiled on Android.
182       "//chrome/test/chromedriver:chromedriver_unittests",
183       "//extensions:extensions_browsertests",
184       "//extensions:extensions_unittests",
185       "//google_apis/gcm:gcm_unit_tests",
186       "//ipc:ipc_tests",  # TODO(GYP) ??
187       "//jingle:jingle_unittests",  # TODO(GYP) ??
188       "//net:net_unittests",
189       "//ppapi/examples",
190       "//third_party/pdfium/samples:pdfium_test",
191       "//tools/gn",
192       "//tools/gn:gn_unittests",
193       "//ui/app_list:app_list_unittests",
194       "//url:url_unittests",
195     ]
197     if (has_chrome_android_internal) {
198       deps += [ "//clank" ]  # TODO(GYP) ??
199     }
200   } else if (is_linux) {
201     deps += [
202       "//dbus:dbus_unittests",
203       "//sandbox/linux:sandbox_linux_unittests",
204     ]
205   } else if (is_mac) {
206     deps += [
207       "//third_party/apple_sample_code",
208       "//third_party/molokocacao",
209     ]
211     # TODO(GYP): Remove these when the targets below work and these
212     # are pulled in automatically.
213     deps += [
214       "//cc/blink",
215       "//components/ui/zoom:ui_zoom",
216       "//content",
217       "//content/test:test_support",
218       "//device/battery",
219       "//device/bluetooth",
220       "//device/nfc",
221       "//device/usb",
222       "//device/vibration",
223       "//media/blink",
224       "//pdf",
225       "//storage/browser",
226       "//third_party/brotli",
227       "//third_party/flac",
228       "//third_party/hunspell",
229       "//third_party/iccjpeg",
230       "//third_party/libphonenumber",
231       "//third_party/ots",
232       "//third_party/qcms",
233       "//third_party/smhasher:murmurhash3",
234       "//third_party/speex",
235       "//third_party/webrtc/system_wrappers",
236       "//ui/native_theme",
237       "//ui/snapshot",
238       "//ui/surface",
239     ]
241     # TODO(dpranke): These are as-yet untriaged but need at least the above.
242     deps -= [
243       "//chrome",  # TODO(GYP)
244       "//chrome/test:browser_tests",  # TODO(GYP)
245       "//chrome/test:interactive_ui_tests",  # TODO(GYP)
246       "//chrome/test:sync_integration_tests",  # TODO(GYP)
247       "//chrome/test:unit_tests",  # TODO(GYP)
248       "//components:components_unittests",  # TODO(GYP)
249       "//content/test:content_browsertests",  # TODO(GYP)
250       "//content/test:content_perftests",  # TODO(GYP)
251       "//content/test:content_unittests",  # TODO(GYP)
252       "//extensions:extensions_browsertests",  # TODO(GYP)
253       "//extensions:extensions_unittests",  # TODO(GYP)
254       "//net:net_unittests",  # TODO(GYP)
255       "//ui/app_list:app_list_unittests",  # TODO(GYP)
256       "//ui/gfx:gfx_unittests",  # TODO(GYP)
257     ]
258   } else if (is_win) {
259     deps += [ "//ui/metro_viewer" ]
260     deps -= [
261       "//crypto:crypto_unittests",  # TODO(GYP)
262       "//net:net_unittests",  # TODO(GYP)
263     ]
264   }
267 group("gn_only") {
268   deps = [
269     "//media/mojo",
270     # "//mojo/services/html_viewer:tests",  # TODO(GYP): Do we need this?
271   ]
274 if (is_linux) {
275   # This group corresponds to the list of tests run on the waterfall for
276   # desktop Linux GYP builds from testing/buildbot/chromium.linux.json. It's
277   # here to help track GYP -> GN conversion progress.
278   group("linux_default_tests") {
279     testonly = true
280     deps = [
281       # components_browsertests  TODO(GYP)
282       # device_unittests  TODO(GYP)
283       # nacl_loader_unittests  TODO(GYP)
285       "//base:base_unittests",  # PASSES (*) 2/25/2015
286       "//cc:cc_unittests",  # PASSES 2/25/2015
287       "//chrome/test:browser_tests",
288       "//chrome/test:interactive_ui_tests",
289       "//chrome/test:sync_integration_tests",  # Crashes for brettw in GN and GYP.
290       "//chrome/test:unit_tests",  # PASSES 2/25/2015
291       "//chrome/test/chromedriver:chromedriver_unittests",  # PASSES 2/25/2015
292       "//components:components_unittests",  # PASSES 2/27/2015
293       "//content/test:content_browsertests",
294       "//content/test:content_unittests",  # PASSES 2/25/2015
295       "//crypto:crypto_unittests",  # PASSES 2/25/2015
296       "//dbus:dbus_unittests",  # PASSES 2/25/2015
297       "//extensions:extensions_browsertests",  # PASSES 2/25/2015
298       "//extensions:extensions_unittests",  # PASSES 2/25/2015
299       "//extensions/shell:app_shell_unittests",  # PASSES 2/25/2015
300       "//google_apis/gcm:gcm_unit_tests",  # PASSES 2/25/2015
301       "//google_apis:google_apis_unittests",  # PASSES 2/25/2015
302       "//gpu:gpu_unittests",  # PASSES 2/25/2015
303       "//ipc:ipc_tests",  # PASSES 2/25/2015
304       "//ipc/mojo:ipc_mojo_unittests",  # PASSES 2/25/2015
305       "//jingle:jingle_unittests",  # PASSES 2/25/2015
306       "//media/cast:cast_unittests",  # PASSES 2/25/2015
307       "//media:media_unittests",  # PASSES 3/3/2015
308       "//mojo/common:mojo_common_unittests",  # PASSES 2/25/2015
309       "//net:net_unittests",  # PASSES 2/25/2015
310       "//ppapi:ppapi_unittests",  # PASSES 2/26/2015
311       "//printing:printing_unittests",  # PASSES 2/25/2015
312       "//remoting:remoting_unittests",  # Some crashes.
313       "//sandbox/linux:sandbox_linux_unittests",  # PASSES 2/25/2015
314       "//skia:skia_unittests",  # PASSES 2/25/2015
315       "//sql:sql_unittests",  # PASSES 2/25/2015
316       "//sync:sync_unit_tests",  # PASSES 2/25/2015
317       "//third_party/cacheinvalidation:cacheinvalidation_unittests",  # PASSES 2/25/2015
318       "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests",  # PASSES 2/25/2015
319       "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests",  # PASSES 2/25/2015
320       "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests",  # PASSES 2/25/2015
321       "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests",  # PASSES 2/25/2015
322       "//ui/accessibility:accessibility_unittests",  # PASSES 2/25/2015
323       "//ui/app_list:app_list_unittests",  # PASSES 2/25/2015
324       "//ui/aura:aura_unittests",  # PASSES 2/25/2015
325       "//ui/base:ui_base_unittests",  # TODO(GYP) ResourceBundleTest.* fails.
326       "//ui/compositor:compositor_unittests",  # PASSES 2/25/2015
327       "//ui/display:display_unittests",  # PASSES 2/25/2015
328       "//ui/events:events_unittests",  # PASSES 2/25/2015
329       "//ui/gfx:gfx_unittests",  # PASSES 2/25/2015
330       "//ui/touch_selection:ui_touch_selection_unittests",  # PASSES 2/25/2015
331       "//ui/views:views_unittests",  # PASSES (*) 2/25/2015
332       "//ui/wm:wm_unittests",  # PASSES 2/25/2015
333       "//url:url_unittests",  # PASSES 2/25/2015
335       # Note:
336       # (*) Fails but failures match GYP build at time of testing.
337     ]
338   }