# 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", "//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/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_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) "//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) "//third_party/usrsctp", # 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 = [ # chromedriver_unittests TODO(GYP) # components_browsertests TODO(GYP) # device_unittests TODO(GYP) # nacl_loader_unittests TODO(GYP) # ppapi_unittests TODO(GYP) # remoting_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", # TODO(GYP) multiple crashes. "//chrome/test:unit_tests", # PASSES 2/25/2015 "//components:components_unittests", # TODO(GYP) multiple crashes. "//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", # TODO(GYP) MidiManagerTest fails. "//mojo/common:mojo_common_unittests", # PASSES 2/25/2015 "//net:net_unittests", # PASSES 2/25/2015 "//printing:printing_unittests", # PASSES 2/25/2015 "//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. ] } }