1*9bb1b549SSpandan Dasload("@bazel_skylib//:bzl_library.bzl", "bzl_library") 2*9bb1b549SSpandan Dasload(":well_known_types.bzl", "go_proto_wrapper") 3*9bb1b549SSpandan Dasload("//proto:def.bzl", "go_proto_library") 4*9bb1b549SSpandan Das 5*9bb1b549SSpandan Das# Several of the well-known types have pre-generated code checked into to both 6*9bb1b549SSpandan Das# github.com/golang/protobuf (APIv1) and google.golang.org/protobuf (APIv2). 7*9bb1b549SSpandan Das# The APIv1 packages are just wrappers for the APIv2 packages. We're using 8*9bb1b549SSpandan Das# the APIv1 compiler, but it won't generate these wrappers for us automatically. 9*9bb1b549SSpandan Das# If we use it, and a program also imports the APIv2 packages, we'll end up 10*9bb1b549SSpandan Das# with a registration conflict. Instead, we'll use the pre-generated APIv1 11*9bb1b549SSpandan Das# code, but we'll wrap it up in a go_proto_library. 12*9bb1b549SSpandan Dasgo_proto_wrapper( 13*9bb1b549SSpandan Das name = "any_wrapper", 14*9bb1b549SSpandan Das library = "@com_github_golang_protobuf//ptypes/any:go_default_library", 15*9bb1b549SSpandan Das visibility = ["//visibility:private"], 16*9bb1b549SSpandan Das) 17*9bb1b549SSpandan Das 18*9bb1b549SSpandan Dasgo_proto_library( 19*9bb1b549SSpandan Das name = "any_go_proto", 20*9bb1b549SSpandan Das compilers = [":any_wrapper"], 21*9bb1b549SSpandan Das importpath = "github.com/golang/protobuf/ptypes/any", 22*9bb1b549SSpandan Das protos = ["@com_google_protobuf//:any_proto"], 23*9bb1b549SSpandan Das visibility = ["//visibility:public"], 24*9bb1b549SSpandan Das) 25*9bb1b549SSpandan Das 26*9bb1b549SSpandan Dasgo_proto_wrapper( 27*9bb1b549SSpandan Das name = "compiler_plugin_wrapper", 28*9bb1b549SSpandan Das library = "@com_github_golang_protobuf//protoc-gen-go/plugin:go_default_library", 29*9bb1b549SSpandan Das visibility = ["//visibility:private"], 30*9bb1b549SSpandan Das) 31*9bb1b549SSpandan Das 32*9bb1b549SSpandan Dasgo_proto_library( 33*9bb1b549SSpandan Das name = "compiler_plugin_go_proto", 34*9bb1b549SSpandan Das compilers = [":compiler_plugin_wrapper"], 35*9bb1b549SSpandan Das importpath = "github.com/golang/protobuf/protoc-gen-go/plugin", 36*9bb1b549SSpandan Das protos = ["@com_google_protobuf//:compiler_plugin_proto"], 37*9bb1b549SSpandan Das visibility = ["//visibility:public"], 38*9bb1b549SSpandan Das) 39*9bb1b549SSpandan Das 40*9bb1b549SSpandan Dasgo_proto_wrapper( 41*9bb1b549SSpandan Das name = "descriptor_wrapper", 42*9bb1b549SSpandan Das library = "@com_github_golang_protobuf//protoc-gen-go/descriptor:go_default_library", 43*9bb1b549SSpandan Das visibility = ["//visibility:private"], 44*9bb1b549SSpandan Das) 45*9bb1b549SSpandan Das 46*9bb1b549SSpandan Dasgo_proto_library( 47*9bb1b549SSpandan Das name = "descriptor_go_proto", 48*9bb1b549SSpandan Das compilers = [":descriptor_wrapper"], 49*9bb1b549SSpandan Das importpath = "github.com/golang/protobuf/protoc-gen-go/descriptor", 50*9bb1b549SSpandan Das protos = ["@com_google_protobuf//:descriptor_proto"], 51*9bb1b549SSpandan Das visibility = ["//visibility:public"], 52*9bb1b549SSpandan Das) 53*9bb1b549SSpandan Das 54*9bb1b549SSpandan Dasgo_proto_wrapper( 55*9bb1b549SSpandan Das name = "duration_wrapper", 56*9bb1b549SSpandan Das library = "@com_github_golang_protobuf//ptypes/duration:go_default_library", 57*9bb1b549SSpandan Das visibility = ["//visibility:private"], 58*9bb1b549SSpandan Das) 59*9bb1b549SSpandan Das 60*9bb1b549SSpandan Dasgo_proto_library( 61*9bb1b549SSpandan Das name = "duration_go_proto", 62*9bb1b549SSpandan Das compilers = [":duration_wrapper"], 63*9bb1b549SSpandan Das importpath = "github.com/golang/protobuf/ptypes/duration", 64*9bb1b549SSpandan Das protos = ["@com_google_protobuf//:duration_proto"], 65*9bb1b549SSpandan Das visibility = ["//visibility:public"], 66*9bb1b549SSpandan Das) 67*9bb1b549SSpandan Das 68*9bb1b549SSpandan Dasgo_proto_wrapper( 69*9bb1b549SSpandan Das name = "empty_wrapper", 70*9bb1b549SSpandan Das library = "@com_github_golang_protobuf//ptypes/empty:go_default_library", 71*9bb1b549SSpandan Das visibility = ["//visibility:private"], 72*9bb1b549SSpandan Das) 73*9bb1b549SSpandan Das 74*9bb1b549SSpandan Dasgo_proto_library( 75*9bb1b549SSpandan Das name = "empty_go_proto", 76*9bb1b549SSpandan Das compilers = [":empty_wrapper"], 77*9bb1b549SSpandan Das importpath = "github.com/golang/protobuf/ptypes/empty", 78*9bb1b549SSpandan Das protos = ["@com_google_protobuf//:empty_proto"], 79*9bb1b549SSpandan Das visibility = ["//visibility:public"], 80*9bb1b549SSpandan Das) 81*9bb1b549SSpandan Das 82*9bb1b549SSpandan Dasgo_proto_wrapper( 83*9bb1b549SSpandan Das name = "field_mask_wrapper", 84*9bb1b549SSpandan Das library = "@org_golang_google_genproto//protobuf/field_mask:go_default_library", 85*9bb1b549SSpandan Das visibility = ["//visibility:private"], 86*9bb1b549SSpandan Das) 87*9bb1b549SSpandan Das 88*9bb1b549SSpandan Dasgo_proto_library( 89*9bb1b549SSpandan Das name = "field_mask_go_proto", 90*9bb1b549SSpandan Das compilers = [":field_mask_wrapper"], 91*9bb1b549SSpandan Das importpath = "google.golang.org/genproto/protobuf/field_mask", 92*9bb1b549SSpandan Das protos = ["@com_google_protobuf//:field_mask_proto"], 93*9bb1b549SSpandan Das visibility = ["//visibility:public"], 94*9bb1b549SSpandan Das) 95*9bb1b549SSpandan Das 96*9bb1b549SSpandan Dasgo_proto_wrapper( 97*9bb1b549SSpandan Das name = "source_context_wrapper", 98*9bb1b549SSpandan Das library = "@org_golang_google_genproto//protobuf/source_context:go_default_library", 99*9bb1b549SSpandan Das visibility = ["//visibility:private"], 100*9bb1b549SSpandan Das) 101*9bb1b549SSpandan Das 102*9bb1b549SSpandan Dasgo_proto_library( 103*9bb1b549SSpandan Das name = "source_context_go_proto", 104*9bb1b549SSpandan Das compilers = [":source_context_wrapper"], 105*9bb1b549SSpandan Das importpath = "google.golang.org/genproto/protobuf/source_context", 106*9bb1b549SSpandan Das protos = ["@com_google_protobuf//:source_context_proto"], 107*9bb1b549SSpandan Das visibility = ["//visibility:public"], 108*9bb1b549SSpandan Das) 109*9bb1b549SSpandan Das 110*9bb1b549SSpandan Dasgo_proto_wrapper( 111*9bb1b549SSpandan Das name = "struct_wrapper", 112*9bb1b549SSpandan Das library = "@com_github_golang_protobuf//ptypes/struct:go_default_library", 113*9bb1b549SSpandan Das visibility = ["//visibility:private"], 114*9bb1b549SSpandan Das) 115*9bb1b549SSpandan Das 116*9bb1b549SSpandan Dasgo_proto_library( 117*9bb1b549SSpandan Das name = "struct_go_proto", 118*9bb1b549SSpandan Das compilers = [":struct_wrapper"], 119*9bb1b549SSpandan Das importpath = "github.com/golang/protobuf/ptypes/struct", 120*9bb1b549SSpandan Das protos = ["@com_google_protobuf//:struct_proto"], 121*9bb1b549SSpandan Das visibility = ["//visibility:public"], 122*9bb1b549SSpandan Das) 123*9bb1b549SSpandan Das 124*9bb1b549SSpandan Dasgo_proto_wrapper( 125*9bb1b549SSpandan Das name = "timestamp_wrapper", 126*9bb1b549SSpandan Das library = "@com_github_golang_protobuf//ptypes/timestamp:go_default_library", 127*9bb1b549SSpandan Das visibility = ["//visibility:private"], 128*9bb1b549SSpandan Das) 129*9bb1b549SSpandan Das 130*9bb1b549SSpandan Dasgo_proto_library( 131*9bb1b549SSpandan Das name = "timestamp_go_proto", 132*9bb1b549SSpandan Das compilers = [":timestamp_wrapper"], 133*9bb1b549SSpandan Das importpath = "github.com/golang/protobuf/ptypes/timestamp", 134*9bb1b549SSpandan Das protos = ["@com_google_protobuf//:timestamp_proto"], 135*9bb1b549SSpandan Das visibility = ["//visibility:public"], 136*9bb1b549SSpandan Das) 137*9bb1b549SSpandan Das 138*9bb1b549SSpandan Dasgo_proto_wrapper( 139*9bb1b549SSpandan Das name = "type_wrapper", 140*9bb1b549SSpandan Das library = "@org_golang_google_genproto//protobuf/ptype:go_default_library", 141*9bb1b549SSpandan Das visibility = ["//visibility:private"], 142*9bb1b549SSpandan Das) 143*9bb1b549SSpandan Das 144*9bb1b549SSpandan Dasgo_proto_library( 145*9bb1b549SSpandan Das name = "type_go_proto", 146*9bb1b549SSpandan Das compilers = [":type_wrapper"], 147*9bb1b549SSpandan Das importpath = "google.golang.org/genproto/protobuf/ptype", 148*9bb1b549SSpandan Das protos = ["@com_google_protobuf//:type_proto"], 149*9bb1b549SSpandan Das visibility = ["//visibility:public"], 150*9bb1b549SSpandan Das) 151*9bb1b549SSpandan Das 152*9bb1b549SSpandan Dasgo_proto_wrapper( 153*9bb1b549SSpandan Das name = "wrappers_wrapper", 154*9bb1b549SSpandan Das library = "@com_github_golang_protobuf//ptypes/wrappers:go_default_library", 155*9bb1b549SSpandan Das visibility = ["//visibility:private"], 156*9bb1b549SSpandan Das) 157*9bb1b549SSpandan Das 158*9bb1b549SSpandan Dasgo_proto_library( 159*9bb1b549SSpandan Das name = "wrappers_go_proto", 160*9bb1b549SSpandan Das compilers = [":wrappers_wrapper"], 161*9bb1b549SSpandan Das importpath = "github.com/golang/protobuf/ptypes/wrappers", 162*9bb1b549SSpandan Das protos = ["@com_google_protobuf//:wrappers_proto"], 163*9bb1b549SSpandan Das visibility = ["//visibility:public"], 164*9bb1b549SSpandan Das) 165*9bb1b549SSpandan Das 166*9bb1b549SSpandan Das# Protos below this point don't have duplicate libraries, so we generate .pb.go 167*9bb1b549SSpandan Das# files at build time as usual. The only difference is we use 168*9bb1b549SSpandan Das# go_proto_bootstrap, which has an empty set of implicit dependencies. 169*9bb1b549SSpandan Dasgo_proto_library( 170*9bb1b549SSpandan Das name = "api_go_proto", 171*9bb1b549SSpandan Das compilers = ["//proto:go_proto_bootstrap"], 172*9bb1b549SSpandan Das importpath = "google.golang.org/genproto/protobuf/api", 173*9bb1b549SSpandan Das protos = ["@com_google_protobuf//:api_proto"], 174*9bb1b549SSpandan Das visibility = ["//visibility:public"], 175*9bb1b549SSpandan Das deps = [ 176*9bb1b549SSpandan Das ":source_context_go_proto", 177*9bb1b549SSpandan Das ":type_go_proto", 178*9bb1b549SSpandan Das ], 179*9bb1b549SSpandan Das) 180*9bb1b549SSpandan Das 181*9bb1b549SSpandan Dasfilegroup( 182*9bb1b549SSpandan Das name = "all_rules", 183*9bb1b549SSpandan Das testonly = True, 184*9bb1b549SSpandan Das srcs = glob(["*.bzl"]), 185*9bb1b549SSpandan Das visibility = ["//visibility:public"], 186*9bb1b549SSpandan Das) 187*9bb1b549SSpandan Das 188*9bb1b549SSpandan Dasfilegroup( 189*9bb1b549SSpandan Das name = "all_files", 190*9bb1b549SSpandan Das testonly = True, 191*9bb1b549SSpandan Das srcs = glob(["**"]), 192*9bb1b549SSpandan Das visibility = ["//visibility:public"], 193*9bb1b549SSpandan Das) 194*9bb1b549SSpandan Das 195*9bb1b549SSpandan Dasbzl_library( 196*9bb1b549SSpandan Das name = "well_known_types", 197*9bb1b549SSpandan Das srcs = ["well_known_types.bzl"], 198*9bb1b549SSpandan Das visibility = ["//visibility:public"], 199*9bb1b549SSpandan Das deps = [ 200*9bb1b549SSpandan Das "//go:def", 201*9bb1b549SSpandan Das "//proto:compiler", 202*9bb1b549SSpandan Das "//proto:def", 203*9bb1b549SSpandan Das ], 204*9bb1b549SSpandan Das) 205