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

dart_app("echo-launcher-dart-client") {
  main_dart = "lib/main.dart"
  meta = [
    {
      path = rebase_path("meta/client.cmx")
      dest = "echo-launcher-dart-client.cmx"
    },
  ]
  sources = [ "main.dart" ]
  deps = [
    "//examples/fidl/fuchsia.examples",
    "//third_party/dart-pkg/pub/pedantic",
    dart_package_label.fidl,
    dart_package_label.fuchsia,
    dart_package_label.fuchsia_logger,
    dart_package_label.fuchsia_services,
  ]
}

group("client") {
  testonly = true
  deps = [ ":echo-launcher-dart-client" ]
}
