# 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("directory") {
  sources = [
    "config.go",
    "directory.go",
    "directory_test.go",
    "init.go",
    "metrics.go",
    "readme.go",
  ]
  deps = [
    "//tools/check-licenses/project",
    "//tools/check-licenses/project/readme",
    "//tools/lib/logger",
  ]
}

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

if (is_host) {
  go_test("check-licenses_directory_tests") {
    library = ":directory"
    args = [
      "--test_data_dir",
      rebase_path("$target_gen_dir/testdata", root_build_dir),
    ]
    non_go_deps = [ "testdata" ]
  }
}
