# Copyright 2014 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.

# Collection of all components. You wouldn't link to this, but this is rather
# to reference the files so they can be compiled by the build system.
group("all_components") {
  visibility = "//:*"  # Only for the root targets to bring in.

  deps = [
    "//components/auto_login_parser",
    "//components/autocomplete",
    "//components/autofill/content/browser",
    "//components/autofill/content/common",
    "//components/autofill/content/renderer",
    "//components/bookmarks/browser",
    "//components/bookmarks/common",
    "//components/bookmarks/test",
    "//components/captive_portal",
    "//components/cloud_devices/common",
    "//components/data_reduction_proxy/browser",
    "//components/data_reduction_proxy/common",
    "//components/dom_distiller/core",
    "//components/domain_reliability",
    "//components/enhanced_bookmarks",
    "//components/favicon/core",
    "//components/favicon_base",
    "//components/feedback",
    "//components/gcm_driver",
    "//components/google/core/browser",
    "//components/history/core/browser",
    "//components/history/core/common",
    "//components/history/core/test",
    "//components/infobars/core",
    "//components/infobars/test:test_support",
    "//components/invalidation",
    "//components/json_schema",
    "//components/language_usage_metrics",
    "//components/leveldb_proto",
    "//components/metrics",
    "//components/navigation_interception",
    "//components/navigation_metrics",
    "//components/network_time",
    "//components/omaha_query_params",
    "//components/onc",
    "//components/os_crypt",
    "//components/password_manager/content/browser",
    "//components/password_manager/core/browser",
    "//components/password_manager/core/common",
    "//components/plugins/renderer",
    "//components/policy",
    "//components/precache/core",
    "//components/precache/content",
    "//components/pref_registry",
    "//components/query_parser",
    "//components/rappor",
    "//components/resources:components_resources",
    "//components/search_engines",
    "//components/search_provider_logos",
    "//components/sessions",
    "//components/signin/core/browser",
    "//components/startup_metric_utils",
    "//components/strings",
    "//components/tracing",
    "//components/translate/content/browser",
    "//components/translate/content/common",
    "//components/translate/content/renderer",
    "//components/translate/core/browser",
    "//components/translate/core/common",
    "//components/url_fixer",
    "//components/url_matcher",
    "//components/usb_service",
    "//components/user_prefs",
    "//components/variations",
    "//components/visitedlink/browser",
    "//components/visitedlink/common",
    "//components/visitedlink/renderer",
    "//components/web_modal",
    "//components/webdata/common",
  ]

  if (is_win || is_mac) {
    deps += [
      "//components/wifi",
    ]
  }

  if (!is_ios) {
    deps += [ "//components/keyed_service/content" ]
  }

  if (is_android) {
    deps -= [
      "//components/autocomplete",  # Should work, needs checking.
      "//components/autofill/content/browser",  # Blocked on content/blink.
      "//components/autofill/content/common",  # Blocked on content.
      "//components/autofill/content/renderer",  # Blocked on content/blink.
      "//components/captive_portal",  # Should work, needs checking.
      "//components/cloud_devices/common",  # Should work, needs checking.
      "//components/data_reduction_proxy/browser",  # Should work, needs checking.
      "//components/data_reduction_proxy/common",  # Should work, needs checking.
      "//components/dom_distiller/core",  # Blocked on content.
      "//components/domain_reliability",  # Blocked on content.
      "//components/favicon_base",  # Should work, needs checking.
      "//components/favicon/core",  # Blocked on keyed service.
      "//components/feedback",  # Blocked on content.
      "//components/gcm_driver",  # Should work, needs checking.
      "//components/google/core/browser",  # Should work, needs checking.
      "//components/history/core/browser",  # Should work, needs checking.
      "//components/history/core/common",  # Should work, needs checking.
      "//components/history/core/test",  # Should work, needs checking.
      "//components/infobars/core",  # Should work, needs checking.
      "//components/infobars/test:test_support",  # Should work, needs checking.
      "//components/invalidation",  # Should work, needs checking.
      "//components/json_schema",  # Should work, needs checking.
      "//components/keyed_service/content",  # Blocked on content.
      "//components/navigation_interception",  # Blocked on content.
      "//components/password_manager/content/browser",  # Blocked on content.
      "//components/password_manager/core/browser",  # Should work, needs checking.
      "//components/password_manager/core/common",  # Should work, needs checking.
      "//components/plugins/renderer",  # Blocked on blink.
      "//components/policy",  # Blocked on content (indirectly via autofill).
      "//components/precache/content",  # Blocked on content.
      "//components/precache/core",  # Should work, needs checking.
      "//components/rappor",  # Should work, needs checking.
      "//components/search_engines",  # Should work, needs checking.
      "//components/search_provider_logos",  # Should work, needs checking.
      "//components/sessions",  # Blocked on content.
      "//components/signin/core/browser",  # Should work, needs checking.
      "//components/translate/content/browser",  # Blocked on content.
      "//components/translate/content/common",  # Blocked on content.
      "//components/translate/content/renderer",  # Blocked on content.
      "//components/usb_service",  # Blocked on content.
      "//components/user_prefs",  # Blocked on content.
      "//components/visitedlink/browser",  # Blocked on content.
      "//components/visitedlink/common",  # Blocked on content.
      "//components/visitedlink/renderer",  # Blocked on blink
      "//components/web_modal",  # Blocked on content.
    ]
  }

  if (!is_ios && !is_android) {
    deps += [
      "//components/storage_monitor",
    ]
  }
}

# TODO(GYP) components_unittests
#test("components_unittests") {
##  # Precache tests need these defines.
#  configs += [ "//components/precache/core:precache_config" ]
#}
