# 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("bluetooth_settings") {
  main_dart = "lib/main.dart"

  manifest = "pubspec.yaml"

  sources = [
    "src/bluetooth_model.dart",
    "src/bluetooth_settings.dart",
  ]

  meta = [
    {
      path = rebase_path("meta/bluetooth_settings.cmx")
      dest = "bluetooth_settings.cmx"
    },
  ]

  deps = [
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//garnet/public/fidl/fuchsia.bluetooth",
    "//garnet/public/fidl/fuchsia.bluetooth.control",
    "//garnet/public/fidl/fuchsia.bluetooth.gatt",
    "//garnet/public/fidl/fuchsia.bluetooth.le",
    "//topaz/lib/settings:lib.settings",
    "//topaz/public/dart/widgets:lib.widgets",
    "//topaz/public/lib/app/dart",
    "//topaz/public/lib/app_driver/dart",
    "//topaz/public/lib/schemas/dart",
  ]
}
