# Copyright 2019 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/components.gni")
import("//build/dart/dart_library.gni")
import("//build/flutter/flutter_component.gni")
import("//build/flutter/test.gni")

dart_library("lib") {
  package_name = "hello_experiences"
  sources = [ "main.dart" ]
  deps = [
    "//sdk/dart/fuchsia_logger",
    "//third_party/dart-pkg/git/flutter/packages/flutter",
  ]
}

flutter_component("component") {
  component_name = "hello-experiences"
  manifest = "meta/hello-experiences.cml"
  deps = [ ":lib" ]
}

fuchsia_package("hello-experiences") {
  deps = [ ":component" ]
}

flutter_test("hello_experiences_unittests") {
  sources = [ "sample_test.dart" ]

  deps = [ "//third_party/dart-pkg/pub/test" ]
}
