|
@@ -224,21 +224,24 @@ objc_library(
|
|
visibility = ["//visibility:public"],
|
|
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]
|
|
WELL_KNOWN_PROTOS = ["src/" + s for s in RELATIVE_WELL_KNOWN_PROTOS]
|
|
|
|
|
|
@@ -258,6 +261,33 @@ cc_proto_library(
|
|
visibility = ["//visibility:public"],
|
|
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
|
|
# Protocol Buffers Compiler
|
|
################################################################################
|
|
################################################################################
|