blob: e06db5fb9cc6eea59e5f261cccb1208a3fc2bd92 [file] [log] [blame]
# 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.
]
}
}