# 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/go/go_binary.gni")
import("//build/go/go_library.gni")
import("//build/go/toolchain.gni")
import("//build/package.gni")

go_binary("echo_client_go_bin") {
  output_name = "echo_client_go"
  gopackage = "echo_client_go"

  deps = [
    ":echo_client_go_lib",
  ]
}

go_library("echo_client_go_lib") {
  name = "echo_client_go"
  deps = [
    "//garnet/examples/fidl/services:echo($go_toolchain)",
    "//garnet/public/lib/component/go/src/app",
    "//sdk/fidl/fuchsia.sys($go_toolchain)",
  ]
}

package("echo_client_go") {
  deps = [
    ":echo_client_go_bin",
  ]

  binary = "echo_client_go"

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