Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
331 lines
9.8 KiB
331 lines
9.8 KiB
load("@bazel_skylib//:bzl_library.bzl", "bzl_library") |
|
load("//:protobuf.bzl", "internal_objc_proto_library", "internal_php_proto_library", "internal_py_proto_library") |
|
load("//bazel:cc_proto_library.bzl", "cc_proto_library") |
|
load("//bazel:java_lite_proto_library.bzl", "java_lite_proto_library") |
|
load("//bazel:java_proto_library.bzl", "java_proto_library") |
|
load("//bazel:proto_library.bzl", "proto_library") |
|
load("//bazel:py_proto_library.bzl", "py_proto_library") |
|
load("//bazel:upb_proto_library.bzl", "upb_c_proto_library", "upb_proto_reflection_library") |
|
load(":defaults.bzl", "compile_edition_defaults", "embed_edition_defaults") |
|
|
|
bzl_library( |
|
name = "defaults", |
|
srcs = ["defaults.bzl"], |
|
visibility = ["//visibility:public"], |
|
deps = ["//bazel/common:proto_info_bzl"], |
|
) |
|
|
|
# Aggregate all the features owned by the Protobuf repo. |
|
compile_edition_defaults( |
|
name = "protobuf_defaults", |
|
testonly = True, |
|
srcs = [ |
|
"//java/core:java_features_proto", |
|
"//src/google/protobuf:cpp_features_proto", |
|
], |
|
maximum_edition = "2023", |
|
minimum_edition = "2023", |
|
) |
|
|
|
compile_edition_defaults( |
|
name = "test_defaults_2023", |
|
testonly = True, |
|
srcs = ["//src/google/protobuf:unittest_features_proto"], |
|
maximum_edition = "2023", |
|
minimum_edition = "2023", |
|
) |
|
|
|
compile_edition_defaults( |
|
name = "test_defaults_future", |
|
testonly = True, |
|
srcs = ["//src/google/protobuf:unittest_features_proto"], |
|
maximum_edition = "99997_TEST_ONLY", |
|
minimum_edition = "2023", |
|
) |
|
|
|
compile_edition_defaults( |
|
name = "test_defaults_far_future", |
|
testonly = True, |
|
srcs = ["//src/google/protobuf:unittest_features_proto"], |
|
maximum_edition = "99999_TEST_ONLY", |
|
minimum_edition = "99997_TEST_ONLY", |
|
) |
|
|
|
embed_edition_defaults( |
|
name = "embed_test_defaults", |
|
testonly = True, |
|
defaults = ":test_defaults_2023", |
|
output = "defaults_test_embedded.h", |
|
placeholder = "DEFAULTS_VALUE", |
|
template = "defaults_test_embedded.h.template", |
|
) |
|
|
|
embed_edition_defaults( |
|
name = "embed_test_defaults_base64", |
|
testonly = True, |
|
defaults = ":test_defaults_2023", |
|
encoding = "base64", |
|
output = "defaults_test_embedded_base64.h", |
|
placeholder = "DEFAULTS_VALUE", |
|
template = "defaults_test_embedded_base64.h.template", |
|
) |
|
|
|
cc_binary( |
|
name = "internal_defaults_escape", |
|
srcs = ["internal_defaults_escape.cc"], |
|
malloc = "@bazel_tools//tools/cpp:malloc", |
|
# This needs to be public for users of embed_edition_defaults. |
|
visibility = ["//visibility:public"], |
|
deps = [ |
|
"//src/google/protobuf", |
|
"@com_google_absl//absl/flags:flag", |
|
"@com_google_absl//absl/flags:parse", |
|
"@com_google_absl//absl/log:absl_log", |
|
"@com_google_absl//absl/strings", |
|
], |
|
) |
|
|
|
cc_library( |
|
name = "defaults_test_embedded", |
|
hdrs = [ |
|
"defaults_test_embedded.h", |
|
"defaults_test_embedded_base64.h", |
|
], |
|
) |
|
|
|
cc_test( |
|
name = "defaults_test", |
|
srcs = ["defaults_test.cc"], |
|
data = [ |
|
":protobuf_defaults", |
|
":test_defaults_2023", |
|
":test_defaults_far_future", |
|
":test_defaults_future", |
|
], |
|
deps = [ |
|
":defaults_test_embedded", |
|
"//:protobuf", |
|
"//java/core:java_features_cc_proto", |
|
"//src/google/protobuf", |
|
"//src/google/protobuf:cpp_features_cc_proto", |
|
"//src/google/protobuf:port", |
|
"//src/google/protobuf:protobuf_lite", |
|
"//src/google/protobuf:test_textproto", |
|
"//src/google/protobuf:unittest_features_cc_proto", |
|
"//src/google/protobuf/stubs", |
|
"//src/google/protobuf/testing", |
|
"//src/google/protobuf/testing:file", |
|
"@bazel_tools//tools/cpp/runfiles", |
|
"@com_google_absl//absl/memory", |
|
"@com_google_absl//absl/status", |
|
"@com_google_absl//absl/status:statusor", |
|
"@com_google_absl//absl/strings", |
|
"@com_google_absl//absl/strings:string_view", |
|
"@com_google_googletest//:gtest", |
|
"@com_google_googletest//:gtest_main", |
|
], |
|
) |
|
|
|
proto_library( |
|
name = "test_messages_proto2_editions_proto", |
|
testonly = True, |
|
srcs = ["golden/test_messages_proto2_editions.proto"], |
|
) |
|
|
|
cc_proto_library( |
|
name = "test_messages_proto2_editions_cc_proto", |
|
testonly = True, |
|
visibility = ["//conformance:__pkg__"], |
|
deps = [":test_messages_proto2_editions_proto"], |
|
) |
|
|
|
internal_objc_proto_library( |
|
name = "test_messages_proto2_editions_objc_proto", |
|
testonly = True, |
|
srcs = ["golden/test_messages_proto2_editions.proto"], |
|
visibility = ["//conformance:__pkg__"], |
|
) |
|
|
|
java_proto_library( |
|
name = "test_messages_proto2_editions_java_proto", |
|
testonly = True, |
|
visibility = ["//conformance:__pkg__"], |
|
deps = [":test_messages_proto2_editions_proto"], |
|
) |
|
|
|
java_lite_proto_library( |
|
name = "test_messages_proto2_editions_java_proto_lite", |
|
testonly = True, |
|
visibility = ["//conformance:__pkg__"], |
|
deps = [":test_messages_proto2_editions_proto"], |
|
) |
|
|
|
internal_py_proto_library( |
|
name = "test_messages_proto2_editions_py_pb2", |
|
testonly = True, |
|
srcs = ["golden/test_messages_proto2_editions.proto"], |
|
srcs_version = "PY2AND3", |
|
visibility = [ |
|
"//conformance:__pkg__", |
|
], |
|
) |
|
|
|
upb_c_proto_library( |
|
name = "test_messages_proto2_editions_upb_proto", |
|
testonly = 1, |
|
deps = [":test_messages_proto2_editions_proto"], |
|
) |
|
|
|
upb_proto_reflection_library( |
|
name = "test_messages_proto2_editions_upbdefs", |
|
testonly = 1, |
|
visibility = ["//upb/conformance:__pkg__"], |
|
deps = [":test_messages_proto2_editions_proto"], |
|
) |
|
|
|
proto_library( |
|
name = "test_messages_proto3_editions_proto", |
|
testonly = True, |
|
srcs = ["golden/test_messages_proto3_editions.proto"], |
|
deps = [ |
|
"//:any_proto", |
|
"//:duration_proto", |
|
"//:field_mask_proto", |
|
"//:struct_proto", |
|
"//:timestamp_proto", |
|
"//:wrappers_proto", |
|
], |
|
) |
|
|
|
cc_proto_library( |
|
name = "test_messages_proto3_editions_cc_proto", |
|
testonly = True, |
|
visibility = ["//conformance:__pkg__"], |
|
deps = [":test_messages_proto3_editions_proto"], |
|
) |
|
|
|
internal_objc_proto_library( |
|
name = "test_messages_proto3_editions_objc_proto", |
|
testonly = True, |
|
srcs = ["golden/test_messages_proto3_editions.proto"], |
|
includes = [ |
|
".", |
|
"src", |
|
], |
|
proto_deps = ["//:well_known_type_protos"], |
|
visibility = ["//conformance:__pkg__"], |
|
) |
|
|
|
java_proto_library( |
|
name = "test_messages_proto3_editions_java_proto", |
|
testonly = True, |
|
visibility = ["//conformance:__pkg__"], |
|
deps = [":test_messages_proto3_editions_proto"], |
|
) |
|
|
|
java_lite_proto_library( |
|
name = "test_messages_proto3_editions_java_proto_lite", |
|
testonly = True, |
|
visibility = ["//conformance:__pkg__"], |
|
deps = [":test_messages_proto3_editions_proto"], |
|
) |
|
|
|
internal_php_proto_library( |
|
name = "test_messages_proto3_editions_php_proto", |
|
testonly = 1, |
|
srcs = ["golden/test_messages_proto3_editions.proto"], |
|
outs = [ |
|
"GPBMetadata/TestMessagesProto3Editions.php", |
|
"Protobuf_test_messages/Editions/Proto3/EnumOnlyProto3.php", |
|
"Protobuf_test_messages/Editions/Proto3/EnumOnlyProto3/PBBool.php", |
|
"Protobuf_test_messages/Editions/Proto3/ForeignEnum.php", |
|
"Protobuf_test_messages/Editions/Proto3/ForeignMessage.php", |
|
"Protobuf_test_messages/Editions/Proto3/NullHypothesisProto3.php", |
|
"Protobuf_test_messages/Editions/Proto3/TestAllTypesProto3.php", |
|
"Protobuf_test_messages/Editions/Proto3/TestAllTypesProto3/AliasedEnum.php", |
|
"Protobuf_test_messages/Editions/Proto3/TestAllTypesProto3/NestedEnum.php", |
|
"Protobuf_test_messages/Editions/Proto3/TestAllTypesProto3/NestedMessage.php", |
|
], |
|
enable_editions = True, |
|
includes = [ |
|
"golden", |
|
"src", |
|
], |
|
proto_deps = ["//:well_known_type_protos"], |
|
visibility = ["//conformance:__pkg__"], |
|
) |
|
|
|
internal_py_proto_library( |
|
name = "test_messages_proto3_editions_py_pb2", |
|
testonly = True, |
|
srcs = ["golden/test_messages_proto3_editions.proto"], |
|
srcs_version = "PY2AND3", |
|
visibility = [ |
|
"//conformance:__pkg__", |
|
], |
|
deps = ["//python:well_known_types_py_pb2"], |
|
) |
|
|
|
upb_c_proto_library( |
|
name = "test_messages_proto3_editions_upb_proto", |
|
testonly = 1, |
|
deps = [":test_messages_proto3_editions_proto"], |
|
) |
|
|
|
upb_proto_reflection_library( |
|
name = "test_messages_proto3_editions_upbdefs", |
|
testonly = 1, |
|
visibility = ["//upb/conformance:__pkg__"], |
|
deps = ["test_messages_proto3_editions_proto"], |
|
) |
|
|
|
# Export these for conformance tests for ruby and C# codegen. |
|
exports_files( |
|
[ |
|
"golden/test_messages_proto2_editions.proto", |
|
"golden/test_messages_proto3_editions.proto", |
|
], |
|
visibility = [ |
|
"//ruby:__pkg__", |
|
"//src/google/protobuf/csharp:__pkg__", |
|
], |
|
) |
|
|
|
proto_library( |
|
name = "test_editions_default_features_proto", |
|
testonly = True, |
|
srcs = ["proto/test_editions_default_features.proto"], |
|
) |
|
|
|
cc_proto_library( |
|
name = "test_editions_default_features_cc_proto", |
|
testonly = True, |
|
deps = [":test_editions_default_features_proto"], |
|
) |
|
|
|
cc_test( |
|
name = "generated_files_test", |
|
srcs = ["generated_files_test.cc"], |
|
deps = [ |
|
":test_editions_default_features_cc_proto", |
|
":test_messages_proto2_editions_cc_proto", |
|
":test_messages_proto3_editions_cc_proto", |
|
"//:protobuf", |
|
"//src/google/protobuf:test_textproto", |
|
"@com_google_googletest//:gtest", |
|
"@com_google_googletest//:gtest_main", |
|
], |
|
) |
|
|
|
cc_test( |
|
name = "generated_reflection_test", |
|
srcs = ["generated_reflection_test.cc"], |
|
deps = [ |
|
":test_messages_proto2_editions_cc_proto", |
|
"@com_google_googletest//:gtest", |
|
"@com_google_googletest//:gtest_main", |
|
], |
|
) |
|
|
|
# Define a test suite to allow us to trigger these tests from //src expansions. |
|
test_suite(name = "all_tests")
|
|
|