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