# Copyright 2015 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("//mojo/public/dart/rules.gni")

copy("copy_sky_services_license") {
  sources = [
    "//AUTHORS",
    "//LICENSE",
  ]

  outputs = [
    "$root_gen_dir/dart-pkg/sky_services/{{source_file_part}}",
  ]
}

dart_pkg("sky_services") {
  sources = [
    "README.md",
    "pubspec.yaml",
  ]

  deps = [
    ":copy_sky_services_license",
    "//sky/services/activity:interfaces",
    "//sky/services/media:interfaces",
    "//sky/services/testing:interfaces",
    "//sky/services/vsync:interfaces",
  ]
}
