# Copyright 2019 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/host.gni")

source_set("common") {
  sources = [ "netprotocol.c" ]
  deps = [ "//zircon/system/public" ]
  configs += [
    # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
    "//build/config:Wno-conversion",
  ]
}

executable("netruncmd") {
  sources = [ "netruncmd.c" ]
  deps = [ ":common" ]
}

executable("netcp") {
  sources = [ "netcp.c" ]
  deps = [
    ":common",
    "//zircon/system/ulib/tftp",
  ]
  configs += [
    # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
    "//build/config:Wno-conversion",
  ]
}

executable("netls") {
  sources = [ "netls.c" ]
  deps = [ ":common" ]
}

executable("netaddr") {
  sources = [ "netaddr.c" ]
  deps = [ ":common" ]
}

install_host_tools("netprotocol") {
  deps = [
    ":netaddr",
    ":netcp",
    ":netls",
    ":netruncmd",
  ]
  outputs = [
    "netaddr",
    "netcp",
    "netls",
    "netruncmd",
  ]
}
