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

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

if (is_host) {
  go_test("check-licenses_filetree_tests") {
    gopackages = [ "go.fuchsia.dev/fuchsia/tools/check-licenses/filetree" ]
    args = [
      "--test_data_dir",
      rebase_path("$target_gen_dir/testdata", root_build_dir),
    ]
    deps = [ ":filetree" ]
    non_go_deps = [ "testdata" ]
  }
}
