|
|
|
@ -224,21 +224,24 @@ objc_library( |
|
|
|
|
visibility = ["//visibility:public"], |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
RELATIVE_WELL_KNOWN_PROTOS = [ |
|
|
|
|
# AUTOGEN(well_known_protos) |
|
|
|
|
"google/protobuf/any.proto", |
|
|
|
|
"google/protobuf/api.proto", |
|
|
|
|
"google/protobuf/compiler/plugin.proto", |
|
|
|
|
"google/protobuf/descriptor.proto", |
|
|
|
|
"google/protobuf/duration.proto", |
|
|
|
|
"google/protobuf/empty.proto", |
|
|
|
|
"google/protobuf/field_mask.proto", |
|
|
|
|
"google/protobuf/source_context.proto", |
|
|
|
|
"google/protobuf/struct.proto", |
|
|
|
|
"google/protobuf/timestamp.proto", |
|
|
|
|
"google/protobuf/type.proto", |
|
|
|
|
"google/protobuf/wrappers.proto", |
|
|
|
|
] |
|
|
|
|
# Map of all well known protos. |
|
|
|
|
# name => (include path, imports) |
|
|
|
|
WELL_KNOWN_PROTO_MAP = { |
|
|
|
|
"any" : ("google/protobuf/any.proto", []), |
|
|
|
|
"api" : ("google/protobuf/api.proto", ["source_context", "type"]), |
|
|
|
|
"compiler_plugin" : ("google/protobuf/compiler/plugin.proto", ["descriptor"]), |
|
|
|
|
"descriptor" : ("google/protobuf/descriptor.proto", []), |
|
|
|
|
"duration" : ("google/protobuf/duration.proto", []), |
|
|
|
|
"empty" : ("google/protobuf/empty.proto", []), |
|
|
|
|
"field_mask" : ("google/protobuf/field_mask.proto", []), |
|
|
|
|
"source_context" : ("google/protobuf/source_context.proto", []), |
|
|
|
|
"struct" : ("google/protobuf/struct.proto", []), |
|
|
|
|
"timestamp" : ("google/protobuf/timestamp.proto", []), |
|
|
|
|
"type" : ("google/protobuf/type.proto", ["any", "source_context"]), |
|
|
|
|
"wrappers" : ("google/protobuf/wrappers.proto", []), |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
RELATIVE_WELL_KNOWN_PROTOS = [proto[1][0] for proto in WELL_KNOWN_PROTO_MAP.items()] |
|
|
|
|
|
|
|
|
|
WELL_KNOWN_PROTOS = ["src/" + s for s in RELATIVE_WELL_KNOWN_PROTOS] |
|
|
|
|
|
|
|
|
@ -258,6 +261,33 @@ cc_proto_library( |
|
|
|
|
visibility = ["//visibility:public"], |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
################################################################################ |
|
|
|
|
# Well Known Types Proto Library Rules |
|
|
|
|
# |
|
|
|
|
# These proto_library rules can be used with one of the language specific proto |
|
|
|
|
# library rules i.e. java_proto_library: |
|
|
|
|
# |
|
|
|
|
# java_proto_library( |
|
|
|
|
# name = "any_java_proto", |
|
|
|
|
# deps = ["@com_google_protobuf//:any_proto], |
|
|
|
|
# ) |
|
|
|
|
################################################################################ |
|
|
|
|
|
|
|
|
|
internal_copied_filegroup( |
|
|
|
|
name = "_internal_wkt_protos", |
|
|
|
|
srcs = WELL_KNOWN_PROTOS, |
|
|
|
|
dest = "", |
|
|
|
|
strip_prefix = "src", |
|
|
|
|
visibility = ["//visibility:hidden"], |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
[proto_library( |
|
|
|
|
name = proto[0] + "_proto", |
|
|
|
|
srcs = [proto[1][0]], |
|
|
|
|
deps = [dep + "_proto" for dep in proto[1][1]], |
|
|
|
|
visibility = ["//visibility:public"], |
|
|
|
|
) for proto in WELL_KNOWN_PROTO_MAP.items()] |
|
|
|
|
|
|
|
|
|
################################################################################ |
|
|
|
|
# Protocol Buffers Compiler |
|
|
|
|
################################################################################ |
|
|
|
|