# 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($host_toolchain)",
    "//tools/build/ninjago/ninjatrace($host_toolchain)",
  ]
}

group("tests") {
  testonly = true

  deps = [
    ":build_tests",
    "fx-set:tests",
    "ninjago:tests",
  ]
}

go_library("build") {
  sources = [
    "archives.go",
    "args.go",
    "args_test.go",
    "assembly_input_archives.go",
    "assembly_manifest.go",
    "binaries.go",
    "binaries_test.go",
    "blob.go",
    "boot_tests.go",
    "checkout_artifacts.go",
    "clippy.go",
    "images.go",
    "licenses.go",
    "modules.go",
    "package_repositories.go",
    "prebuilt_binaries.go",
    "product_bundles.go",
    "product_size_checker_output.go",
    "sdk_archives.go",
    "test_durations.go",
    "test_durations_test.go",
    "test_list.go",
    "test_list_test.go",
    "tests.go",
    "tests_test.go",
    "tools.go",
    "tools_test.go",
  ]
  deps = [
    "//third_party/golibs:github.com/google/go-cmp",
    "//third_party/golibs:golang.org/x/exp",
    "//tools/lib/hostplatform",
    "//tools/lib/jsonutil",
    "//tools/lib/osmisc",
  ]
}

go_test("build_tests") {
  library = ":build"
}
