# 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")

if (is_host) {
  go_library("clippy") {
    source_dir = "clippy"
    sources = [
      "clippy.go",
      "clippy_test.go",
    ]

    deps = [
      "//third_party/golibs:github.com/google/go-cmp",
      "//tools/build",
      "//tools/lib/logger",
      "//tools/staticanalysis",
    ]
  }

  go_test("clippy_tests") {
    gopackages =
        [ "go.fuchsia.dev/fuchsia/tools/staticanalysis/analyzers/clippy" ]
    deps = [ ":clippy" ]
  }
}

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