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. 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 11 import("//build/config/ui.gni") 12 13 # In GN, a "group" is a dummy target that just lists other targets. 14 group("root") { 15 # This should not be linked into production and depends on test targets. 16 testonly = true 17 18 # Note that some dependencies are commented out. These are things that are 19 # currently written but not hooked up to the build yet. They may need to be 20 # completed or possibly just tested and then re-enabled. 21 deps = [ 22 "//apps", 23 "//ash", 24 "//cc", 25 "//cc/blink", 26 "//chrome/browser", 27 "//chrome/browser/devtools", 28 "//chrome/common", 29 "//chrome/plugin", 30 "//chrome/renderer", 31 "//chrome/utility", 32 "//components:all_components", 33 "//content", 34 "//content/shell:content_shell", 35 "//content/test:test_support", 36 "//crypto", 37 "//device/bluetooth", 38 "//device/nfc", 39 "//extensions/browser", 40 "//extensions/common", 41 "//extensions/common/api", 42 "//extensions/renderer", 43 "//gin", 44 "//gpu", 45 "//google_apis", 46 "//google_apis/gcm", 47 "//ipc", 48 "//ipc/mojo", 49 "//jingle:notifier", 50 "//media", 51 "//media/blink", 52 "//media/cast", 53 "//media/mojo", 54 "//mojo", 55 "//net", 56 "//pdf", 57 "//ppapi:ppapi_c", 58 "//printing", 59 "//remoting/client/plugin", 60 "//sandbox", 61 "//sdch", 62 "//skia", 63 "//storage/browser", 64 "//sql", 65 "//sync", 66 "//third_party/WebKit/public:all_blink", 67 "//third_party/angle:translator", 68 "//third_party/brotli", 69 "//third_party/cacheinvalidation", 70 "//third_party/cld", 71 "//third_party/cld_2", 72 "//third_party/ffmpeg", 73 "//third_party/flac", 74 "//third_party/harfbuzz-ng", 75 "//third_party/hunspell", 76 "//third_party/iccjpeg", 77 "//third_party/icu", 78 "//third_party/leveldatabase", 79 "//third_party/libphonenumber", 80 "//third_party/libjingle", 81 "//third_party/libpng", 82 "//third_party/libsrtp", 83 "//third_party/libusb", 84 "//third_party/libwebm", 85 "//third_party/libwebp", 86 "//third_party/libxslt", 87 "//third_party/libvpx", 88 "//third_party/libyuv", 89 "//third_party/lzma_sdk", 90 "//third_party/mesa", 91 "//third_party/opus", 92 "//third_party/ots", 93 "//third_party/protobuf:protobuf_lite", 94 "//third_party/qcms", 95 "//third_party/re2", 96 "//third_party/smhasher:cityhash", 97 "//third_party/smhasher:murmurhash3", 98 "//third_party/smhasher:pmurhash", 99 "//third_party/snappy", 100 "//third_party/speex", 101 "//third_party/usrsctp", 102 "//third_party/widevine/cdm:version_h", 103 "//third_party/webrtc", 104 "//third_party/zlib", 105 "//third_party:jpeg", 106 "//tools/gn", 107 "//tools/imagediff($host_toolchain)", 108 "//ui/accessibility", 109 "//ui/app_list", 110 "//ui/aura", 111 "//ui/base", 112 "//ui/display", 113 "//ui/events", 114 "//ui/gfx", 115 "//ui/gl", 116 "//ui/keyboard", 117 "//ui/native_theme", 118 "//ui/resources", 119 "//ui/snapshot", 120 "//ui/strings", 121 "//ui/surface", 122 "//ui/views", 123 "//ui/views/controls/webview", 124 "//ui/web_dialogs", 125 "//url", 126 "//v8:v8", 127 ] 128 129 if (!is_win) { 130 deps += [ "//breakpad:symupload" ] 131 } 132 133 if (is_linux) { 134 deps += [ 135 "//dbus", 136 "//third_party/fontconfig", 137 "//third_party/freetype2", 138 ] 139 } 140 141 if (use_x11) { 142 deps += [ "//tools/xdisplaycheck" ] 143 } 144 145 if (use_aura) { 146 deps += [ "//ui/wm" ] 147 } 148 149 if (is_win) { 150 deps += [ 151 "//ui/metro_viewer", 152 ] 153 } 154 155 if (is_win || is_mac || is_chromeos) { 156 # RLZ works on these platforms. 157 deps += [ 158 "//rlz:rlz_lib", 159 ] 160 } 161 162 if (cpu_arch == "x86" || cpu_arch == "x64") { 163 # YASM is x86/x64 only. 164 deps += [ "//third_party/yasm($host_toolchain)" ] 165 } 166 167 if (is_android) { 168 deps += [ 169 "//third_party/openmax_dl/dl", 170 "//content/shell/android:content_shell_apk", 171 "//ui/android:ui_java", 172 "//third_party/android_tools:android_gcm_java", 173 "//third_party/android_tools:uiautomator_java", 174 "//third_party/android_tools:android_support_v13_java", 175 "//third_party/android_tools:android_support_v7_appcompat_java", 176 "//third_party/android_tools:android_support_v7_mediarouter_java", 177 "//third_party/eyesfree:eyesfree_java", 178 ] 179 180 deps -= [ 181 "//apps", # Needs testing. 182 "//chrome/browser", 183 "//chrome/browser/devtools", 184 "//chrome/common", 185 "//chrome/plugin", 186 "//chrome/renderer", 187 "//chrome/utility", 188 "//content/shell:content_shell", 189 "//extensions/browser", 190 "//extensions/common", 191 "//extensions/common/api", 192 "//extensions/renderer", 193 "//pdf", # Not compiled on Android in GYP yet, either. 194 "//ppapi:ppapi_c", 195 "//third_party/libusb", 196 "//ui/keyboard", # Blocked on content. 197 198 # Seems to not be compiled on Android. Otherwise it will need a config.h. 199 "//third_party/libxslt", 200 201 # Not relevant to Android. 202 "//ash", 203 "//tools/gn", 204 "//ui/aura", 205 "//ui/display", 206 "//ui/views", 207 "//ui/views/controls/webview", 208 209 # Fails on Android for unknown reasons. 210 "//third_party/flac", 211 "//breakpad:symupload", 212 213 # Not tested on Android yet: 214 "//google_apis/gcm", 215 "//remoting/client/plugin", 216 "//storage/browser", 217 "//third_party/cld_2", 218 "//third_party/ffmpeg", 219 "//ui/app_list", 220 "//ui/web_dialogs", 221 ] 222 } 223 224 if (use_ozone) { 225 deps += [ 226 "//ui/ozone", 227 "//ui/ozone/demo", 228 ] 229 } 230 231 # Non-mobile builds. 232 if (!is_android && !is_ios) { 233 deps += [ 234 "//device/usb", 235 ] 236 } 237 } 238