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

import("//build/config/ui.gni")
import("//mojo/public/mojo.gni")

group("services") {
  deps = [
    "//services/clipboard",
    "//services/console",
    "//services/fake_surfaces",
    "//services/gles2:lib",
    "//services/http_server",
    "//services/http_server/public",
    "//services/icu_data",
    "//services/js",
    "//services/kiosk_wm",
    "//services/native_viewport",
    "//services/reaper",
    "//services/surfaces",
    "//services/test_service:bindings",
    "//services/tracing",
    "//services/view_manager",
    "//services/window_manager",
  ]

  if (!is_asan) {
    deps += [ "//services/dart" ]
  }

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