# Copyright 2021 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("staticanalysis") {
    sources = [
      "staticanalysis.go",
      "staticanalysis_test.go",
    ]

    deps = [ "//third_party/golibs:github.com/google/go-cmp" ]
  }

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

group("tests") {
  testonly = true
  deps = [
    ":staticanalysis_tests($host_toolchain)",
    "analyzers:tests",
    "cmd/staticlints:tests",
  ]
}

group("tools") {
  deps = [ "cmd/staticlints($host_toolchain)" ]
}
