xref: /aosp_15_r20/external/bazelbuild-rules_go/go/tools/gopackagesdriver/BUILD.bazel (revision 9bb1b549b6a84214c53be0924760be030e66b93a)
1*9bb1b549SSpandan Dasload("//go:def.bzl", "go_binary", "go_library")
2*9bb1b549SSpandan Dasload(":aspect.bzl", "bazel_supports_canonical_label_literals")
3*9bb1b549SSpandan Das
4*9bb1b549SSpandan Dasgo_library(
5*9bb1b549SSpandan Das    name = "gopackagesdriver_lib",
6*9bb1b549SSpandan Das    srcs = [
7*9bb1b549SSpandan Das        "bazel.go",
8*9bb1b549SSpandan Das        "bazel_json_builder.go",
9*9bb1b549SSpandan Das        "build_context.go",
10*9bb1b549SSpandan Das        "driver_request.go",
11*9bb1b549SSpandan Das        "flatpackage.go",
12*9bb1b549SSpandan Das        "json_packages_driver.go",
13*9bb1b549SSpandan Das        "main.go",
14*9bb1b549SSpandan Das        "packageregistry.go",
15*9bb1b549SSpandan Das        "utils.go",
16*9bb1b549SSpandan Das    ],
17*9bb1b549SSpandan Das    importpath = "github.com/bazelbuild/rules_go/go/tools/gopackagesdriver",
18*9bb1b549SSpandan Das    visibility = ["//visibility:private"],
19*9bb1b549SSpandan Das)
20*9bb1b549SSpandan Das
21*9bb1b549SSpandan Dasgo_binary(
22*9bb1b549SSpandan Das    name = "gopackagesdriver",
23*9bb1b549SSpandan Das    embed = [":gopackagesdriver_lib"],
24*9bb1b549SSpandan Das    x_defs = {
25*9bb1b549SSpandan Das        # Determine the name of the rules_go repository as we need to specify it when invoking the
26*9bb1b549SSpandan Das        # aspect.
27*9bb1b549SSpandan Das        # If canonical label literals are supported, we can use a canonical label literal (starting
28*9bb1b549SSpandan Das        # with @@) to pass the repository_name() through repo mapping unchanged.
29*9bb1b549SSpandan Das        # If canonical label literals are not supported, then bzlmod is certainly not enabled and
30*9bb1b549SSpandan Das        # we can assume that the repository name is not affected by repo mappings.
31*9bb1b549SSpandan Das        # If run in the rules_go repo itself, repository_name() returns "@", which is equivalent to
32*9bb1b549SSpandan Das        # "@io_bazel_rules_go" since Bazel 6:
33*9bb1b549SSpandan Das        # https://github.com/bazelbuild/bazel/commit/7694cf75e6366b92e3905c2ad60234cda57627ee
34*9bb1b549SSpandan Das        # TODO: Once we drop support for Bazel 5, we can remove the feature detection logic and
35*9bb1b549SSpandan Das        #       use "@" + repository_name().
36*9bb1b549SSpandan Das        "rulesGoRepositoryName": "@" + repository_name() if bazel_supports_canonical_label_literals() else repository_name(),
37*9bb1b549SSpandan Das    },
38*9bb1b549SSpandan Das    visibility = ["//visibility:public"],
39*9bb1b549SSpandan Das)
40