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

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

  deps = [
    ":xi_session_services",
    "//sdk/fidl/fuchsia.auth",
    "//topaz/lib/xi/fuchsia_client:xi_fuchsia_client",
    "//topaz/public/dart/fidl",
    "//topaz/public/dart/fuchsia_logger",
    "//topaz/public/dart/fuchsia_modular",
  ]
}
