# 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/fidl/fidl.gni")
import("//topaz/runtime/dart_runner/dart_app.gni")

fidl("xi_session_services") {
  name = "fuchsia.xi.session"
  sources = [
    "fidl/xi_session.fidl",
  ]
}

dart_app("xi_session_agent") {
  deprecated_bare_package_url = "//build"

  main_dart = "lib/main.dart"

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

  deps = [
    ":xi_session_services",
    "//garnet/public/fidl/fuchsia.auth",
    "//topaz/lib/xi/fuchsia_client:xi_fuchsia_client",
    "//topaz/public/dart/fidl",
    "//topaz/public/lib/agent/dart",
    "//topaz/public/lib/app/dart",
  ]
}
