| load("@bazel_skylib//:bzl_library.bzl", "bzl_library") |
| load(":well_known_types.bzl", "go_proto_wrapper") |
| load("//proto:def.bzl", "go_proto_library") |
| |
| # Several of the well-known types have pre-generated code checked into to both |
| # github.com/golang/protobuf (APIv1) and google.golang.org/protobuf (APIv2). |
| # The APIv1 packages are just wrappers for the APIv2 packages. We're using |
| # the APIv1 compiler, but it won't generate these wrappers for us automatically. |
| # If we use it, and a program also imports the APIv2 packages, we'll end up |
| # with a registration conflict. Instead, we'll use the pre-generated APIv1 |
| # code, but we'll wrap it up in a go_proto_library. |
| go_proto_wrapper( |
| name = "any_wrapper", |
| library = "@com_github_golang_protobuf//ptypes/any:go_default_library", |
| visibility = ["//visibility:private"], |
| ) |
| |
| go_proto_library( |
| name = "any_go_proto", |
| compilers = [":any_wrapper"], |
| importpath = "github.com/golang/protobuf/ptypes/any", |
| protos = ["@com_google_protobuf//:any_proto"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| go_proto_wrapper( |
| name = "compiler_plugin_wrapper", |
| library = "@com_github_golang_protobuf//protoc-gen-go/plugin:go_default_library", |
| visibility = ["//visibility:private"], |
| ) |
| |
| go_proto_library( |
| name = "compiler_plugin_go_proto", |
| compilers = [":compiler_plugin_wrapper"], |
| importpath = "github.com/golang/protobuf/protoc-gen-go/plugin", |
| protos = ["@com_google_protobuf//:compiler_plugin_proto"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| go_proto_wrapper( |
| name = "descriptor_wrapper", |
| library = "@com_github_golang_protobuf//protoc-gen-go/descriptor:go_default_library", |
| visibility = ["//visibility:private"], |
| ) |
| |
| go_proto_library( |
| name = "descriptor_go_proto", |
| compilers = [":descriptor_wrapper"], |
| importpath = "github.com/golang/protobuf/protoc-gen-go/descriptor", |
| protos = ["@com_google_protobuf//:descriptor_proto"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| go_proto_wrapper( |
| name = "duration_wrapper", |
| library = "@com_github_golang_protobuf//ptypes/duration:go_default_library", |
| visibility = ["//visibility:private"], |
| ) |
| |
| go_proto_library( |
| name = "duration_go_proto", |
| compilers = [":duration_wrapper"], |
| importpath = "github.com/golang/protobuf/ptypes/duration", |
| protos = ["@com_google_protobuf//:duration_proto"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| go_proto_wrapper( |
| name = "empty_wrapper", |
| library = "@com_github_golang_protobuf//ptypes/empty:go_default_library", |
| visibility = ["//visibility:private"], |
| ) |
| |
| go_proto_library( |
| name = "empty_go_proto", |
| compilers = [":empty_wrapper"], |
| importpath = "github.com/golang/protobuf/ptypes/empty", |
| protos = ["@com_google_protobuf//:empty_proto"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| go_proto_wrapper( |
| name = "field_mask_wrapper", |
| library = "@org_golang_google_genproto//protobuf/field_mask:go_default_library", |
| visibility = ["//visibility:private"], |
| ) |
| |
| go_proto_library( |
| name = "field_mask_go_proto", |
| compilers = [":field_mask_wrapper"], |
| importpath = "google.golang.org/genproto/protobuf/field_mask", |
| protos = ["@com_google_protobuf//:field_mask_proto"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| go_proto_wrapper( |
| name = "source_context_wrapper", |
| library = "@org_golang_google_genproto//protobuf/source_context:go_default_library", |
| visibility = ["//visibility:private"], |
| ) |
| |
| go_proto_library( |
| name = "source_context_go_proto", |
| compilers = [":source_context_wrapper"], |
| importpath = "google.golang.org/genproto/protobuf/source_context", |
| protos = ["@com_google_protobuf//:source_context_proto"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| go_proto_wrapper( |
| name = "struct_wrapper", |
| library = "@com_github_golang_protobuf//ptypes/struct:go_default_library", |
| visibility = ["//visibility:private"], |
| ) |
| |
| go_proto_library( |
| name = "struct_go_proto", |
| compilers = [":struct_wrapper"], |
| importpath = "github.com/golang/protobuf/ptypes/struct", |
| protos = ["@com_google_protobuf//:struct_proto"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| go_proto_wrapper( |
| name = "timestamp_wrapper", |
| library = "@com_github_golang_protobuf//ptypes/timestamp:go_default_library", |
| visibility = ["//visibility:private"], |
| ) |
| |
| go_proto_library( |
| name = "timestamp_go_proto", |
| compilers = [":timestamp_wrapper"], |
| importpath = "github.com/golang/protobuf/ptypes/timestamp", |
| protos = ["@com_google_protobuf//:timestamp_proto"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| go_proto_wrapper( |
| name = "type_wrapper", |
| library = "@org_golang_google_genproto//protobuf/ptype:go_default_library", |
| visibility = ["//visibility:private"], |
| ) |
| |
| go_proto_library( |
| name = "type_go_proto", |
| compilers = [":type_wrapper"], |
| importpath = "google.golang.org/genproto/protobuf/ptype", |
| protos = ["@com_google_protobuf//:type_proto"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| go_proto_wrapper( |
| name = "wrappers_wrapper", |
| library = "@com_github_golang_protobuf//ptypes/wrappers:go_default_library", |
| visibility = ["//visibility:private"], |
| ) |
| |
| go_proto_library( |
| name = "wrappers_go_proto", |
| compilers = [":wrappers_wrapper"], |
| importpath = "github.com/golang/protobuf/ptypes/wrappers", |
| protos = ["@com_google_protobuf//:wrappers_proto"], |
| visibility = ["//visibility:public"], |
| ) |
| |
| # Protos below this point don't have duplicate libraries, so we generate .pb.go |
| # files at build time as usual. The only difference is we use |
| # go_proto_bootstrap, which has an empty set of implicit dependencies. |
| go_proto_library( |
| name = "api_go_proto", |
| compilers = ["//proto:go_proto_bootstrap"], |
| importpath = "google.golang.org/genproto/protobuf/api", |
| protos = ["@com_google_protobuf//:api_proto"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":source_context_go_proto", |
| ":type_go_proto", |
| ], |
| ) |
| |
| filegroup( |
| name = "all_rules", |
| testonly = True, |
| srcs = glob(["*.bzl"]), |
| visibility = ["//visibility:public"], |
| ) |
| |
| filegroup( |
| name = "all_files", |
| testonly = True, |
| srcs = glob(["**"]), |
| visibility = ["//visibility:public"], |
| ) |
| |
| bzl_library( |
| name = "well_known_types", |
| srcs = ["well_known_types.bzl"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| "//go:def", |
| "//proto:compiler", |
| "//proto:def", |
| ], |
| ) |