blob: 53e3215bb8d8692afbbcf589381c5a1f3ac74c4b [file]
load("//proto:compiler.bzl", "go_proto_compiler")
load("//proto/wkt:well_known_types.bzl", "GOGO_WELL_KNOWN_TYPE_REMAPS", "WELL_KNOWN_TYPE_RULES")
go_proto_compiler(
name = "go_proto_bootstrap",
visibility = ["//visibility:public"],
deps = [
"@com_github_golang_protobuf//proto:go_default_library",
],
)
go_proto_compiler(
name = "go_proto",
visibility = ["//visibility:public"],
deps = [
"@com_github_golang_protobuf//proto:go_default_library",
] + WELL_KNOWN_TYPE_RULES.values(),
)
go_proto_compiler(
name = "go_grpc",
options = ["plugins=grpc"],
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(),
)
go_proto_compiler(
name = "go_proto_validate",
plugin = "@com_github_mwitkow_go_proto_validators//protoc-gen-govalidators",
suffix = ".validator.pb.go",
valid_archive = False,
visibility = ["//visibility:public"],
deps = [
"@com_github_golang_protobuf//proto: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//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(),
)
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__"],
)