[Sync] Add support for dynamically enabling/disabling types
[chromium-blink-merge.git] / BUILD.gn
blobe420bf226aa468cc4c82cd1d61865e07fc82e13c
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/ui.gni")
13 # In GN, a "group" is a dummy target that just lists other targets.
14 group("root") {
15   # Note that some dependencies are commented out. These are things that are
16   # currently written but not hooked up to the build yet. They may need to be
17   # completed or possibly just tested and then re-enabled.
18   deps = [
19     # This is a temporary test of the not-yet-complete NaCl cross-compilation.
20     #"//base(//build/toolchain/nacl:x86_newlib)",
22     "//apps/common/api:apps_api",
23     "//cc",
24     "//chrome/common",
25     "//content",
26     "//crypto",
27     "//extensions/common/api:extensions_api",
28     "//device/usb",
29     "//gin",
30     "//gpu",
31     "//google_apis",
32     "//ipc",
33     "//mojo",
34     "//mojo/common",
35     "//mojo/environment:chromium",
36     "//mojo/service_manager",
37     "//mojo/system",
38     "//net",
39     "//pdf",
40     "//ppapi:ppapi_c",
41     "//printing",
42     "//sandbox",
43     "//sdch",
44     "//skia",
45     "//sql",
46     "//third_party/angle:translator",
47     "//third_party/brotli",
48     "//third_party/ffmpeg",
49     "//third_party/flac",
50     "//third_party/harfbuzz-ng",
51     "//third_party/iccjpeg",
52     "//third_party/icu",
53     "//third_party/leveldatabase",
54     "//third_party/libpng",
55     "//third_party/libusb",
56     "//third_party/libwebm",
57     "//third_party/libwebp",
58     "//third_party/libxslt",
59     "//third_party/libyuv",
60     "//third_party/lzma_sdk",
61     "//third_party/mesa",
62     "//third_party/ots",
63     "//third_party/protobuf:protobuf_lite",
64     "//third_party/qcms",
65     "//third_party/re2",
66     "//third_party/smhasher:cityhash",
67     "//third_party/smhasher:murmurhash3",
68     "//third_party/smhasher:pmurhash",
69     "//third_party/speex",
70     "//third_party/WebKit/public:all_blink",
71     "//third_party/widevine/cdm:version_h",
72     "//third_party/zlib",
73     "//third_party:jpeg",
74     "//tools/gn",
75     "//ui/aura",
76     "//ui/accessibility",
77     "//ui/base",
78     "//ui/events",
79     "//ui/gfx",
80     "//ui/gl",
81     "//ui/native_theme",
82     "//ui/resources",
83     "//ui/snapshot",
84     "//ui/strings",
85     "//ui/surface",
86     "//url",
87     "//v8:v8",
88     "//webkit/browser:storage",
89     "//webkit/child",
90   ]
92   if (!is_win) {
93     deps += [ "//breakpad:symupload" ]
94   }
96   if (is_linux) {
97     deps += [
98       "//dbus",
99       "//third_party/fontconfig",
100       "//third_party/freetype2",
101     ]
102   }
104   if (is_win) {
105     deps += [
106       "//ui/metro_viewer",
107     ]
108   }
110   if (is_win || is_mac || is_chromeos) {
111     # RLZ works on these platforms.
112     deps += [
113       "//rlz:rlz_lib",
114     ]
115   }
117   if (cpu_arch == "x86" || cpu_arch == "x64") {
118     # YASM is x86/x64 only.
119     deps += [ "//third_party/yasm($host_toolchain)" ]
120   }
122   if (is_android) {
123     deps -= [
124       "//cc",
125       "//chrome/common",  # Blocked on content.
126       "//content",
127       "//extensions/common/api:extensions_api",
128       "//pdf",  # Not compiled on Android in GYP yet, either.
129       "//ppapi:ppapi_c",
130       "//sandbox",
131       "//third_party/libusb",
133       # Seems to not be compiled on Android. Otherwise it will need a config.h.
134       "//third_party/libxslt",
136       "//tools/gn",
137       "//ui/aura",
139       # Fails on Android for unknown reasons.
140       "//third_party/flac",
141       "//breakpad:symupload",
143       # TODO(brettw) make Blink work on Android.
144       "//third_party/WebKit/public:all_blink",
146       # Not tested on Android yet:
147       "//third_party/ffmpeg",
148       "//webkit/browser:storage",
149       "//webkit/child",
150     ]
151   }
153   if (use_ozone) {
154     deps += [
155       "//ui/events/ozone:events_ozone",
156       "//ui/events/ozone:events_ozone_evdev",
157     ]
158   }