# Copyright 2020 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.

# [START imports]
import("//build/components.gni")

# [END imports]

executable("bin") {
  output_name = "fidl_echo_cpp_wire_client"
  sources = [ "main.cc" ]

  # [START deps]
  deps = [
    "//examples/fidl/fuchsia.examples:fuchsia.examples_cpp",

    # This library is used to log messages.
    "//sdk/lib/syslog/cpp",

    # This library provides an the asynchronous event loop implementation.
    "//sdk/lib/async-loop:async-loop-cpp",

    # This library is used to consume capabilities, e.g. protocols,
    # from the component's incoming directory.
    "//sdk/lib/component/incoming/cpp",
  ]

  # [END deps]
}

# [START rest]
fuchsia_component("echo-client") {
  component_name = "echo_client"
  manifest = "meta/client.cml"
  deps = [ ":bin" ]
}

fuchsia_package("echo-cpp-wire-client") {
  deps = [
    ":echo-client",
    "//examples/fidl/cpp/server/wire:echo-server",
    "//examples/fidl/echo-realm:echo_realm",
  ]
}

group("wire") {
  testonly = true
  deps = [ ":echo-cpp-wire-client" ]
}
# [END rest]
