# Copyright 2018 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("//topaz/runtime/flutter_runner/flutter_app.gni")

flutter_app("simple_flutter") {
  components = [
    {
      component_name = "simple_flutter"
      component_type = "flutter"
      package_root = "."
      main_dart = "lib/main.dart"
      sources = []
      deps = [
        "//sdk/fidl/fuchsia.sys",
        "//third_party/dart-pkg/git/flutter/packages/flutter",
        "//topaz/public/dart/fuchsia_services",
        "//topaz/public/dart/widgets:lib.widgets",
      ]
    },
    {
      component_name = "leaf_flutter"
      component_type = "flutter"
      package_root = "."
      main_dart = "lib/leaf.dart"
      sources = [
        "leaf.dart",
      ]
      deps = [
        "//third_party/dart-pkg/git/flutter/packages/flutter",
      ]
    },
  ]
  meta = [
    {
      path = rebase_path("meta/simple_flutter.cmx")
      dest = "simple_flutter.cmx"
    },
    {
      path = rebase_path("meta/leaf_flutter.cmx")
      dest = "leaf_flutter.cmx"
    },
  ]
}
