@ -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
################################################################################