# 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("//build/dart/test.gni")

dart_library("xi_fuchsia_client") {
  package_name = "xi_fuchsia_client"

  sources = [
    "client.dart",
  ]

  deps = [
    "../client:xi_client",
    "//sdk/fidl/fuchsia.xi",
    "//sdk/fidl/fuchsia.modular",
    "//topaz/public/dart/fidl",
    "//topaz/public/dart/fuchsia",
    "//topaz/public/dart/fuchsia_services",
  ]
}

dart_test("xi_fuchsia_client_tests") {
  sources = [
    "xi_fuchsia_client_test.dart",
  ]

  deps = [
    ":xi_fuchsia_client",
    "//third_party/dart-pkg/pub/test",
  ]
}
