| # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # This is the root build file for GN. GN will start processing by loading this |
| # file, and recursively load all dependencies until all dependencies are either |
| # resolved or known not to exist (which will cause the build to fail). So if |
| # you add a new build file, there must be some path of dependencies from this |
| # file to your new one or GN won't know about it. |
| |
| import("//build/config/features.gni") |
| import("//build/config/ui.gni") |
| |
| if (is_android) { |
| import("//build/config/android/config.gni") |
| } |
| |
| declare_args() { |
| # A list of extra dependencies to add to the root target. This allows a |
| # checkout to add additional targets without explicitly changing any checked- |
| # in files. |
| root_extra_deps = [] |
| } |
| |
| # The "gn_all" target should list every root target (target that |
| # nothing else depends on) built by both GN and GYP. One should |
| # be able to run 'ninja gn_all gn_only gn_groups' and then run |
| # 'ninja' a second time and have the second ninja invocation do nothing. |
| # |
| # In addition, the "gn_all" target serves to pull in all of the other |
| # build files needed for the build. |
| # |
| # TODO(GYP): make sure that the above is true and there are scripts run |
| # on the bots that enforce this. |
| |
| group("gn_all") { |
| testonly = true |
| |
| deps = [ |
| "//base:base_unittests", |
| "//cc:cc_unittests", |
| "//chrome", |
| "//chrome/test:browser_tests", |
| "//chrome/test:interactive_ui_tests", |
| "//chrome/test:sync_integration_tests", |
| "//chrome/test:unit_tests", |
| "//chrome/test/chromedriver:chromedriver_unittests", |
| "//components:components_unittests", |
| "//content/shell:content_shell", |
| "//content/test:content_browsertests", |
| "//content/test:content_perftests", |
| "//content/test:content_unittests", |
| "//crypto:crypto_unittests", |
| "//extensions:extensions_browsertests", |
| "//extensions:extensions_unittests", |
| "//google_apis/gcm:gcm_unit_tests", |
| "//gpu:gpu_unittests", |
| "//ipc:ipc_tests", |
| "//ipc/mojo:ipc_mojo_unittests", |
| "//jingle:jingle_unittests", |
| "//media:media_unittests", |
| "//media/cast:cast_unittests", |
| "//mojo", |
| "//mojo/common:mojo_common_unittests", |
| "//net:net_unittests", |
| "//ppapi:ppapi_unittests", |
| "//ppapi/examples", # TODO(GYP): What's the GYP equivalent? |
| "//printing:printing_unittests", |
| "//skia:skia_unittests", |
| "//sql:sql_unittests", |
| "//sync:sync_unit_tests", |
| "//third_party/WebKit/public:blink_tests", |
| "//third_party/cacheinvalidation:cacheinvalidation_unittests", |
| "//third_party/codesighs", |
| "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests", |
| "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests", |
| "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests", |
| "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests", |
| "//third_party/mojo/src/mojo/edk/test:mojo_public_utility_unittests", |
| "//third_party/pdfium/samples:pdfium_test", |
| "//third_party/smhasher:pmurhash", |
| "//tools/imagediff($host_toolchain)", |
| "//tools/gn", |
| "//tools/gn:gn_unittests", |
| "//tools/telemetry:bitmaptools($host_toolchain)", |
| "//ui/accessibility:accessibility_unittests", |
| "//ui/app_list:app_list_unittests", |
| "//ui/base:ui_base_unittests", |
| "//ui/display:display_unittests", |
| "//ui/events:events_unittests", |
| "//ui/gfx:gfx_unittests", |
| "//ui/touch_selection:ui_touch_selection_unittests", |
| "//url:url_unittests", |
| ] |
| |
| deps += root_extra_deps |
| |
| # TODO(GYP): Get this working on the mac? |
| if (enable_extensions && !is_mac) { |
| deps += [ "//extensions/shell:app_shell_unittests" ] |
| } |
| |
| if (!is_android) { |
| deps += [ "//remoting:remoting_unittests" ] |
| } |
| |
| if (!is_win) { |
| deps += [ "//breakpad:symupload" ] |
| } |
| |
| if (use_x11) { |
| deps += [ "//tools/xdisplaycheck" ] |
| } |
| |
| if (toolkit_views) { |
| deps += [ "//ui/views:views_unittests" ] |
| } |
| |
| if (use_aura) { |
| deps += [ "//ui/wm:wm_unittests" ] |
| } |
| |
| if (use_ozone) { |
| deps += [ |
| "//ui/ozone", |
| "//ui/ozone/demo", # GN only |
| ] |
| } |
| |
| if (is_win || is_mac || is_chromeos) { |
| # RLZ works on these platforms. |
| # TODO(GYP): Is this target needed, or pulled in automatically? |
| deps += [ "//rlz:rlz_lib" ] |
| } |
| |
| if (is_android) { |
| deps += [ |
| "//base/android/linker:chromium_android_linker", |
| "//build/android/gyp/test:hello_world", |
| "//build/android/rezip", |
| "//chrome/android:chrome_shell_apk", |
| "//chrome/test/chromedriver/test/webview_shell:chromedriver_webview_shell_apk", |
| "//tools/imagediff($host_toolchain)", |
| |
| # TODO(GYP): Remove these when the components_unittests work. |
| "//components/history/core/test:test", |
| "//components/policy:policy_component_test_support", |
| "//components/policy:test_support", |
| "//components/rappor:test_support", |
| "//components/signin/core/browser:test_support", |
| "//components/sync_driver:test_support", |
| "//components/user_manager", |
| "//components/wallpaper", |
| "//content/shell/android:content_shell_apk", |
| |
| # TODO(GYP): Are these needed, or will they be pulled in automatically? |
| "//third_party/android_tools:android_gcm_java", |
| "//third_party/android_tools:uiautomator_java", |
| "//third_party/android_tools:android_support_v13_java", |
| "//third_party/android_tools:android_support_v7_appcompat_java", |
| "//third_party/android_tools:android_support_v7_mediarouter_java", |
| "//third_party/mesa", |
| "//third_party/mockito:mockito_java", |
| "//third_party/openmax_dl/dl", |
| "//third_party/speex", |
| "//ui/android:ui_java", |
| |
| # TODO(GYP): Are these needed? |
| "//chrome/test:test_support_unit", |
| "//third_party/smhasher:murmurhash3", |
| "//ui/message_center:test_support", |
| ] |
| deps -= [ |
| "//breakpad:symupload", # TODO(GYP) ?? |
| "//chrome", # TODO(GYP) ?? |
| "//chrome/test:browser_tests", # TODO(GYP) ?? |
| "//chrome/test:interactive_ui_tests", # TODO(GYP) ?? |
| "//chrome/test:sync_integration_tests", # TODO(GYP) ?? |
| "//chrome/test:unit_tests", # TODO(GYP) |
| |
| # Chromedriver shouldn't be compiled on Android. |
| "//chrome/test/chromedriver:chromedriver_unittests", |
| "//extensions:extensions_browsertests", |
| "//extensions:extensions_unittests", |
| "//google_apis/gcm:gcm_unit_tests", |
| "//ipc:ipc_tests", # TODO(GYP) ?? |
| "//jingle:jingle_unittests", # TODO(GYP) ?? |
| "//net:net_unittests", |
| "//ppapi/examples", |
| "//third_party/pdfium/samples:pdfium_test", |
| "//tools/gn", |
| "//tools/gn:gn_unittests", |
| "//ui/app_list:app_list_unittests", |
| "//url:url_unittests", |
| ] |
| |
| if (has_chrome_android_internal) { |
| deps += [ "//clank" ] # TODO(GYP) ?? |
| } |
| } else if (is_linux) { |
| deps += [ |
| "//dbus:dbus_unittests", |
| "//sandbox/linux:sandbox_linux_unittests", |
| ] |
| } else if (is_mac) { |
| deps += [ |
| "//third_party/apple_sample_code", |
| "//third_party/molokocacao", |
| ] |
| |
| # TODO(GYP): Remove these when the targets below work and these |
| # are pulled in automatically. |
| deps += [ |
| "//cc/blink", |
| "//components/ui/zoom:ui_zoom", |
| "//content", |
| "//content/test:test_support", |
| "//device/battery", |
| "//device/bluetooth", |
| "//device/nfc", |
| "//device/usb", |
| "//device/vibration", |
| "//media/blink", |
| "//pdf", |
| "//storage/browser", |
| "//third_party/brotli", |
| "//third_party/flac", |
| "//third_party/hunspell", |
| "//third_party/iccjpeg", |
| "//third_party/libphonenumber", |
| "//third_party/ots", |
| "//third_party/qcms", |
| "//third_party/smhasher:murmurhash3", |
| "//third_party/speex", |
| "//third_party/webrtc/system_wrappers", |
| "//ui/native_theme", |
| "//ui/snapshot", |
| "//ui/surface", |
| ] |
| |
| # TODO(dpranke): These are as-yet untriaged but need at least the above. |
| deps -= [ |
| "//chrome", # TODO(GYP) |
| "//chrome/test:browser_tests", # TODO(GYP) |
| "//chrome/test:interactive_ui_tests", # TODO(GYP) |
| "//chrome/test:sync_integration_tests", # TODO(GYP) |
| "//chrome/test:unit_tests", # TODO(GYP) |
| "//components:components_unittests", # TODO(GYP) |
| "//content/test:content_browsertests", # TODO(GYP) |
| "//content/test:content_perftests", # TODO(GYP) |
| "//content/test:content_unittests", # TODO(GYP) |
| "//extensions:extensions_browsertests", # TODO(GYP) |
| "//extensions:extensions_unittests", # TODO(GYP) |
| "//net:net_unittests", # TODO(GYP) |
| "//ui/app_list:app_list_unittests", # TODO(GYP) |
| "//ui/gfx:gfx_unittests", # TODO(GYP) |
| ] |
| } else if (is_win) { |
| deps += [ "//ui/metro_viewer" ] |
| deps -= [ |
| "//crypto:crypto_unittests", # TODO(GYP) |
| "//net:net_unittests", # TODO(GYP) |
| ] |
| } |
| } |
| |
| group("gn_only") { |
| deps = [ |
| "//media/mojo", |
| # "//mojo/services/html_viewer:tests", # TODO(GYP): Do we need this? |
| ] |
| } |
| |
| if (is_linux) { |
| # This group corresponds to the list of tests run on the waterfall for |
| # desktop Linux GYP builds from testing/buildbot/chromium.linux.json. It's |
| # here to help track GYP -> GN conversion progress. |
| group("linux_default_tests") { |
| testonly = true |
| deps = [ |
| # components_browsertests TODO(GYP) |
| # device_unittests TODO(GYP) |
| # nacl_loader_unittests TODO(GYP) |
| |
| "//base:base_unittests", # PASSES (*) 2/25/2015 |
| "//cc:cc_unittests", # PASSES 2/25/2015 |
| "//chrome/test:browser_tests", |
| "//chrome/test:interactive_ui_tests", |
| "//chrome/test:sync_integration_tests", # Crashes for brettw in GN and GYP. |
| "//chrome/test:unit_tests", # PASSES 2/25/2015 |
| "//chrome/test/chromedriver:chromedriver_unittests", # PASSES 2/25/2015 |
| "//components:components_unittests", # PASSES 2/27/2015 |
| "//content/test:content_browsertests", |
| "//content/test:content_unittests", # PASSES 2/25/2015 |
| "//crypto:crypto_unittests", # PASSES 2/25/2015 |
| "//dbus:dbus_unittests", # PASSES 2/25/2015 |
| "//extensions:extensions_browsertests", # PASSES 2/25/2015 |
| "//extensions:extensions_unittests", # PASSES 2/25/2015 |
| "//extensions/shell:app_shell_unittests", # PASSES 2/25/2015 |
| "//google_apis/gcm:gcm_unit_tests", # PASSES 2/25/2015 |
| "//google_apis:google_apis_unittests", # PASSES 2/25/2015 |
| "//gpu:gpu_unittests", # PASSES 2/25/2015 |
| "//ipc:ipc_tests", # PASSES 2/25/2015 |
| "//ipc/mojo:ipc_mojo_unittests", # PASSES 2/25/2015 |
| "//jingle:jingle_unittests", # PASSES 2/25/2015 |
| "//media/cast:cast_unittests", # PASSES 2/25/2015 |
| "//media:media_unittests", # PASSES 3/3/2015 |
| "//mojo/common:mojo_common_unittests", # PASSES 2/25/2015 |
| "//net:net_unittests", # PASSES 2/25/2015 |
| "//ppapi:ppapi_unittests", # PASSES 2/26/2015 |
| "//printing:printing_unittests", # PASSES 2/25/2015 |
| "//remoting:remoting_unittests", # Some crashes. |
| "//sandbox/linux:sandbox_linux_unittests", # PASSES 2/25/2015 |
| "//skia:skia_unittests", # PASSES 2/25/2015 |
| "//sql:sql_unittests", # PASSES 2/25/2015 |
| "//sync:sync_unit_tests", # PASSES 2/25/2015 |
| "//third_party/cacheinvalidation:cacheinvalidation_unittests", # PASSES 2/25/2015 |
| "//third_party/mojo/src/mojo/edk/system:mojo_system_unittests", # PASSES 2/25/2015 |
| "//third_party/mojo/src/mojo/edk/test:mojo_public_bindings_unittests", # PASSES 2/25/2015 |
| "//third_party/mojo/src/mojo/edk/test:mojo_public_environment_unittests", # PASSES 2/25/2015 |
| "//third_party/mojo/src/mojo/edk/test:mojo_public_system_unittests", # PASSES 2/25/2015 |
| "//ui/accessibility:accessibility_unittests", # PASSES 2/25/2015 |
| "//ui/app_list:app_list_unittests", # PASSES 2/25/2015 |
| "//ui/aura:aura_unittests", # PASSES 2/25/2015 |
| "//ui/base:ui_base_unittests", # TODO(GYP) ResourceBundleTest.* fails. |
| "//ui/compositor:compositor_unittests", # PASSES 2/25/2015 |
| "//ui/display:display_unittests", # PASSES 2/25/2015 |
| "//ui/events:events_unittests", # PASSES 2/25/2015 |
| "//ui/gfx:gfx_unittests", # PASSES 2/25/2015 |
| "//ui/touch_selection:ui_touch_selection_unittests", # PASSES 2/25/2015 |
| "//ui/views:views_unittests", # PASSES (*) 2/25/2015 |
| "//ui/wm:wm_unittests", # PASSES 2/25/2015 |
| "//url:url_unittests", # PASSES 2/25/2015 |
| |
| # Note: |
| # (*) Fails but failures match GYP build at time of testing. |
| ] |
| } |
| } |