# 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 = [
    "batch_runner.go",
    "batch_runner_test.go",
    "main.go",
  ]
  deps = [
    "//tools/debug/elflib",
    "//tools/lib/color",
    "//tools/lib/logger",
    "//tools/lib/osmisc",
    "//tools/lib/subprocess",
  ]
}

go_binary("unpack_debug_symbols") {
  gopackage = "go.fuchsia.dev/fuchsia/tools/debug/unpack_debug_symbols/cmd"

  deps = [ ":main" ]
}

go_test("unpack_debug_symbols_tests") {
  gopackages = [ "go.fuchsia.dev/fuchsia/tools/debug/unpack_debug_symbols/cmd" ]
  deps = [ ":main" ]
}

group("tests") {
  testonly = true
  deps = [ ":unpack_debug_symbols_tests" ]
}
