# 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")

go_library("main") {
  name = "go.fuchsia.dev/fuchsia/tools/debug/covargs/cmd"
  source_dir = "cmd"
  deps = [
    "//tools/debug/elflib",
    "//tools/debug/symbolize:symbolize_lib",
    "//tools/lib/color",
    "//tools/lib/command",
    "//tools/lib/logger",
    "//tools/testing/runtests",
  ]
}

go_binary("covargs") {
  gopackage = "go.fuchsia.dev/fuchsia/tools/debug/covargs/cmd"
  deps = [
    ":main",
  ]
}
