# 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/clipboard",
    "//services/console",
    "//services/dart",
    "//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/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/authentication",
      "//services/location",
      "//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" ]
  }
}
