# 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("file") {
  sources = [
    "config.go",
    "file.go",
    "file_test.go",
    "filedata.go",
    "filetype.go",
    "init.go",
    "metrics.go",
  ]
  deps = [
    "notice",
    "//tools/lib/logger",
  ]
}

group("tests") {
  testonly = true
  deps = [
    ":check-licenses_file_tests($host_toolchain)",
    "notice:tests",
  ]
}

if (is_host) {
  go_test("check-licenses_file_tests") {
    gopackages = [ "go.fuchsia.dev/fuchsia/tools/check-licenses/file" ]
    deps = [ ":file" ]
  }
}
