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

group("services") {
  deps = [
    "//services/authenticating_url_loader_interceptor",
    "//services/authentication",
    "//services/clipboard",
    "//services/dart",
    "//services/debugger",
    "//services/device_info",
    "//services/fake_surfaces",
    "//services/files",
    "//services/gles2:lib",
    "//services/http_server",
    "//services/icu_data",
    "//services/keyboard_native",
    "//services/kiosk_wm",
    "//services/native_viewport",
    "//services/prediction",
    "//services/reaper",
    "//services/url_response_disk_cache",
    "//services/surfaces",
    "//services/test_service:bindings",
    "//services/tracing",
    "//services/view_manager",
    "//services/window_manager",
  ]

  if (is_android) {
    deps += [
      "//services/android:java_handler",
      "//services/camera_roll",
      "//services/location",
      "//services/notifications",
      "//services/sensors",
    ]
  }

  if (is_linux) {
    deps += [ "//services/python" ]
  }

  # TODO(jamesr): We only support building V8 snapshot data on a linux host since it
  # needs a 32 bit toolchain and we don't have one configured for mac hosts.
  if (host_os == "linux") {
    deps += [ "//services/js" ]
  }
}
