# Copyright 2022 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("result") {
  sources = [
    "checks.go",
    "config.go",
    "init.go",
    "metrics.go",
    "result.go",
    "template.go",
  ]
  deps = [
    "world",
    "//tools/check-licenses/filetree",
    "//tools/check-licenses/license",
    "//tools/check-licenses/project",
    "//tools/lib/logger",
  ]
}

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