# 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/package.gni")

executable("bin") {
  output_name = "echo_server_c"

  sources = [
    "echo_server.c",
  ]

  deps = [
    "//sdk/lib/svc",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/fdio",
  ]
}

package("echo_server_c") {
  deps = [
    ":bin",
  ]
  binaries = [
    {
      name = "echo_server_c"
      dest = "echo_server"
    },
  ]

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