# 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",
    "fx-set:tests",
    "ninjago:tests",
  ]
}

go_library("build") {
  sources = [
    "archives.go",
    "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",
    "tools_test.go",
    "zbi_tests.go",
  ]
  deps = [
    "//third_party/golibs:github.com/google/go-cmp",
    "//tools/lib/hostplatform",
    "//tools/lib/jsonutil",
    "//tools/lib/osmisc",
  ]
}

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