# 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("//build/dart/dart_library.gni")
import("//topaz/runtime/flutter_runner/flutter_app.gni")

flutter_app("xi_session_demo") {
  deprecated_bare_package_url = "//build"

  main_dart = "lib/main.dart"

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

  deps = [
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//topaz/bin/xi/xi_session_agent:xi_session_services",
    "//topaz/public/lib/app/dart",
    "//topaz/public/lib/app_driver/dart",
    "//topaz/public/lib/run_mod/dart",
  ]
}
