# 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_engine_license") {
  sources = [
    "//AUTHORS",
    "//LICENSE",
  ]

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

if (is_android) {
  copy("copy_sky_engine_apks") {
    sources = [
      "$root_build_dir/apks/SkyShell.apk",
    ]

    outputs = [
      "$root_gen_dir/dart-pkg/sky_engine/apks/SkyShell.apk",
    ]

    deps = [
      "//sky/shell",
    ]
  }
}

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

  deps = [
    ":copy_sky_engine_license",
    "//sky/engine/bindings",
  ]

  if (is_android) {
    deps += [ ":copy_sky_engine_apks" ]
  }

  sdk_ext_directory = "$root_gen_dir/sky/bindings"
  sdk_ext_files = [
    "//sky/engine/bindings/sky_internals.dart",
    "//sky/engine/bindings/builtin_natives.dart",
  ]
  sdk_ext_mappings = [
    "dart:sky,dart_sky.dart",
    "dart:sky.internals,sky_internals.dart",
    "dart:sky_builtin_natives,builtin_natives.dart",
  ]
}
