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

go_library("main") {
  source_dir = "cmd"
  sources = [
    "common.go",
    "dev_finder_test.go",
    "dnssderrors.go",
    "dnssdfinder.go",
    "dnssdfinder.h",
    "dnssdfinder_c.c",
    "finders.go",
    "list.go",
    "main.go",
    "resolve.go",
  ]
  deps = [
    "//third_party/golibs:github.com/google/subcommands",
    "//tools/lib/color",
    "//tools/lib/logger",
    "//tools/net/mdns",
    "//tools/net/netboot",
  ]
}

go_binary("device-finder") {
  library = ":main"
  sdk_category = "partner"
}

go_test("dev_finder_tests") {
  library = ":main"
  deps = [ "//third_party/golibs:github.com/google/go-cmp" ]
}

install_host_tools("host") {
  deps = [ ":device-finder" ]
  outputs = [ "device-finder" ]
}
