# Copyright 2020 The Fuchsia 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/dart/dart_component.gni")
import("//build/dart/dart_library.gni")
import("//build/python/python_host_test.gni")
import("//src/sys/build/components.gni")

group("tests") {
  testonly = true
  deps = [ ":build-dart-test-package" ]
}

dart_library("lib") {
  package_name = "build_dart_test"
  sources = [ "main.dart" ]
  deps = [ "//sdk/dart/fuchsia" ]
}

resource("text-file") {
  sources = [ "text_file.txt" ]
  outputs = [ "data/text_file.txt" ]
}

dart_component("dart-component") {
  manifest = "meta/dart-component.cmx"
  main_package = "build_dart_test"
  deps = [
    ":lib",
    ":text-file",
  ]
}

fuchsia_package("build-dart-test-package") {
  deps = [ ":dart-component" ]
}
