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

go_library("breakpad") {
  sources = [
    "symbol_file.go",
    "symbol_file_test.go",
  ]
}

go_library("generator") {
  source_dir = "generator"
  deps = [
    ":breakpad",
    "//tools/debug/elflib",
  ]
  sources = [ "generator.go" ]
}

go_test("breakpad_tests") {
  gopackages = [ "go.fuchsia.dev/fuchsia/tools/debug/breakpad" ]
  deps = [ ":breakpad" ]
}
