# Copyright 2017 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")
import("//src/sys/build/components.gni")

group("util") {
  testonly = true
  deps = [ ":mdns-util" ]
}

fuchsia_shell_package("mdns-util") {
  deps = [ ":bin" ]
  manifest = "meta/mdns-util.cmx"
}

executable("bin") {
  output_name = "mdns-util"

  sources = [
    "formatting.cc",
    "formatting.h",
    "main.cc",
    "mdns_impl.cc",
    "mdns_impl.h",
    "mdns_params.cc",
    "mdns_params.h",
  ]

  deps = [
    "//garnet/public/lib/fostr",
    "//sdk/fidl/fuchsia.net.mdns",
    "//sdk/lib/sys/cpp",
    "//sdk/lib/syslog/cpp",
    "//src/lib/fsl",
    "//src/lib/fxl",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]
}
