xref: /aosp_15_r20/external/bazel-skylib/gazelle/bzl/BUILD (revision bcb5dc7965af6ee42bf2f21341a2ec00233a8c8a)
1load("@bazel_gazelle//:def.bzl", "gazelle", "gazelle_binary")
2load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
3
4package(default_applicable_licenses = ["//:license"])
5
6# gazelle:exclude testdata
7
8go_library(
9    name = "bzl",
10    srcs = ["gazelle.go"],
11    importpath = "github.com/bazelbuild/bazel-skylib/gazelle",
12    visibility = ["//visibility:public"],
13    deps = [
14        "@bazel_gazelle//config:go_default_library",
15        "@bazel_gazelle//label:go_default_library",
16        "@bazel_gazelle//language:go_default_library",
17        "@bazel_gazelle//pathtools:go_default_library",
18        "@bazel_gazelle//repo:go_default_library",
19        "@bazel_gazelle//resolve:go_default_library",
20        "@bazel_gazelle//rule:go_default_library",
21        "@com_github_bazelbuild_buildtools//build:go_default_library",
22    ],
23)
24
25go_test(
26    name = "bzl_test",
27    srcs = ["gazelle_test.go"],
28    data = [
29        ":gazelle-skylib",
30    ] + glob(
31        [
32            "testdata/**",
33        ],
34        allow_empty = True,
35    ),
36    embed = [":bzl"],
37    deps = [
38        "@bazel_gazelle//testtools:go_default_library",
39        "@io_bazel_rules_go//go/tools/bazel:go_default_library",
40    ],
41)
42
43# This gazelle binary is used exclusively for testing the gazelle language
44# extension and thus only has the skylib language installed.
45gazelle_binary(
46    name = "gazelle-skylib",
47    languages = [":bzl"],
48    visibility = [
49        # Also make the binary available in the root of the repo for use, but
50        # not externally.
51        "//:__pkg__",
52    ],
53)
54
55gazelle(
56    name = "gazelle",
57    gazelle = ":gazelle-skylib",
58)
59
60# TODO(arostovtsev): exclude everything below from distro tarball
61
62# The files needed for distribution
63# A fake testdata directory is created so that
64# the build file has nothing missing, but we
65# do not bloat the distribution tarball
66filegroup(
67    name = "distribution",
68    srcs = glob(["*.go"]) + [
69        "BUILD",
70        ":fake-testdata",
71    ],
72    visibility = ["//visibility:public"],
73)
74
75genrule(
76    name = "fake-testdata",
77    outs = ["testdata"],
78    cmd = "touch $@",
79)
80