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