load("@bazel_skylib//:bzl_library.bzl", "bzl_library") load( "//proto:compiler.bzl", "go_proto_compiler", ) load( "//go/private/rules:transition.bzl", "non_go_reset_target", ) load( "//proto/wkt:well_known_types.bzl", "GOGO_WELL_KNOWN_TYPE_REMAPS", "PROTO_RUNTIME_DEPS", "WELL_KNOWN_TYPES_APIV2", "WELL_KNOWN_TYPE_RULES", ) go_proto_compiler( name = "go_proto_bootstrap", visibility = ["//visibility:public"], deps = PROTO_RUNTIME_DEPS, ) go_proto_compiler( name = "go_proto", plugin = "@org_golang_google_protobuf//cmd/protoc-gen-go", visibility = ["//visibility:public"], deps = PROTO_RUNTIME_DEPS + WELL_KNOWN_TYPES_APIV2, ) go_proto_compiler( name = "go_grpc", # TODO: Bring back the deprecation once Gazelle emits go_grpc_library. # deprecation = "Migrate to //proto:go_grpc_v2 compiler (which you'll get automatically if you use the go_grpc_library() rule).", options = ["plugins=grpc"], plugin = "@com_github_golang_protobuf//protoc-gen-go", visibility = ["//visibility:public"], deps = PROTO_RUNTIME_DEPS + WELL_KNOWN_TYPES_APIV2 + [ "@org_golang_google_grpc//:go_default_library", "@org_golang_google_grpc//codes:go_default_library", "@org_golang_google_grpc//status:go_default_library", "@org_golang_x_net//context:go_default_library", ], ) go_proto_compiler( name = "go_grpc_v2", # Do not break existing code with this upgrade # See https://github.com/grpc/grpc-go/blob/master/cmd/protoc-gen-go-grpc/README.md#future-proofing-services options = ["require_unimplemented_servers=false"], plugin = "@org_golang_google_grpc_cmd_protoc_gen_go_grpc//:protoc-gen-go-grpc", suffix = "_grpc.pb.go", visibility = ["//visibility:public"], deps = PROTO_RUNTIME_DEPS + WELL_KNOWN_TYPES_APIV2 + [ "@org_golang_google_grpc//:go_default_library", "@org_golang_google_grpc//codes:go_default_library", "@org_golang_google_grpc//status:go_default_library", "@org_golang_x_net//context:go_default_library", ], ) GOGO_VARIANTS = [ "combo", "gogo", "gogofast", "gogofaster", "gogoslick", "gogotypes", "gostring", ] [go_proto_compiler( name = variant + "_proto", options = GOGO_WELL_KNOWN_TYPE_REMAPS, plugin = "@com_github_gogo_protobuf//protoc-gen-" + variant, visibility = ["//visibility:public"], deps = [ "@com_github_gogo_protobuf//gogoproto:go_default_library", "@com_github_gogo_protobuf//proto:go_default_library", "@com_github_gogo_protobuf//protoc-gen-gogo/descriptor:go_default_library", "@com_github_gogo_protobuf//sortkeys:go_default_library", "@com_github_gogo_protobuf//types:go_default_library", ] + WELL_KNOWN_TYPE_RULES.values(), ) for variant in GOGO_VARIANTS] go_proto_compiler( name = "gofast_proto", plugin = "@com_github_gogo_protobuf//protoc-gen-gofast", visibility = ["//visibility:public"], deps = [ "@com_github_golang_protobuf//proto:go_default_library", ] + WELL_KNOWN_TYPE_RULES.values(), ) [go_proto_compiler( name = variant + "_grpc", options = ["plugins=grpc"] + GOGO_WELL_KNOWN_TYPE_REMAPS, plugin = "@com_github_gogo_protobuf//protoc-gen-" + variant, visibility = ["//visibility:public"], deps = [ "@com_github_gogo_protobuf//gogoproto:go_default_library", "@com_github_gogo_protobuf//proto:go_default_library", "@com_github_gogo_protobuf//protoc-gen-gogo/descriptor:go_default_library", "@com_github_gogo_protobuf//sortkeys:go_default_library", "@com_github_gogo_protobuf//types:go_default_library", "@org_golang_google_grpc//:go_default_library", "@org_golang_google_grpc//codes:go_default_library", "@org_golang_google_grpc//status:go_default_library", "@org_golang_x_net//context:go_default_library", ] + WELL_KNOWN_TYPE_RULES.values(), ) for variant in GOGO_VARIANTS] go_proto_compiler( name = "gofast_grpc", options = ["plugins=grpc"], plugin = "@com_github_gogo_protobuf//protoc-gen-gofast", visibility = ["//visibility:public"], deps = [ "@com_github_golang_protobuf//proto:go_default_library", "@org_golang_google_grpc//:go_default_library", "@org_golang_google_grpc//codes:go_default_library", "@org_golang_google_grpc//status:go_default_library", "@org_golang_x_net//context:go_default_library", ] + WELL_KNOWN_TYPE_RULES.values(), ) non_go_reset_target( name = "protoc", dep = "@com_google_protobuf//:protoc", visibility = ["//visibility:public"], ) filegroup( name = "all_rules", testonly = True, srcs = glob(["*.bzl"]) + ["//proto/wkt:all_rules"], visibility = ["//:__subpackages__"], ) filegroup( name = "all_files", testonly = True, srcs = glob(["**"]) + ["//proto/wkt:all_files"], visibility = ["//:__subpackages__"], ) bzl_library( name = "compiler", srcs = ["compiler.bzl"], visibility = ["//visibility:public"], deps = [ "//go:def", "//go/private/rules:transition", "@bazel_skylib//lib:paths", ], ) bzl_library( name = "def", srcs = ["def.bzl"], visibility = ["//visibility:public"], # Don't list dependency on @rules_proto//proto:defs deps = [ "//go:def", "//go/private:providers", "//proto:compiler", ], # keep ) bzl_library( name = "gogo", srcs = ["gogo.bzl"], visibility = ["//visibility:public"], )