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

group("tools") {
  testonly = true

  public_deps = [
    "//tools/build/ninjago/buildstats",
    "//tools/build/ninjago/ninjatrace",
  ]
}

group("tests") {
  testonly = true

  deps = [
    ":build_tests",
    "ninjago:tests",
  ]
}

go_library("build") {
  sources = [
    "args.go",
    "args_test.go",
    "binaries.go",
    "binaries_test.go",
    "checkout_artifacts.go",
    "images.go",
    "modules.go",
    "prebuilt_binaries.go",
    "sdk_archives.go",
    "test_durations.go",
    "test_durations_test.go",
    "tests.go",
    "tests_test.go",
    "tools.go",
    "util.go",
    "util_test.go",
  ]
  deps = [ "//tools/lib/osmisc" ]
}

go_test("build_tests") {
  gopackages = [ "go.fuchsia.dev/fuchsia/tools/build" ]
  deps = [ ":build" ]
}
