275 lines
8.1 KiB
Python
275 lines
8.1 KiB
Python
load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
|
|
load("//build_defs:cpp_opts.bzl", "COPTS")
|
|
|
|
package(default_visibility = [
|
|
"//pkg:__pkg__",
|
|
"//src/google/protobuf/json:__pkg__",
|
|
])
|
|
|
|
licenses(["notice"])
|
|
|
|
cc_library(
|
|
name = "json",
|
|
srcs = ["json.cc"],
|
|
hdrs = ["json.h"],
|
|
copts = COPTS,
|
|
strip_include_prefix = "/src",
|
|
visibility = ["//visibility:public"],
|
|
deps = [
|
|
":parser",
|
|
":unparser",
|
|
"//src/google/protobuf",
|
|
"//src/google/protobuf:port_def",
|
|
"//src/google/protobuf/io",
|
|
"//src/google/protobuf/io:zero_copy_sink",
|
|
"//src/google/protobuf/util:type_resolver_util",
|
|
"@com_google_absl//absl/base",
|
|
"@com_google_absl//absl/flags:flag",
|
|
"@com_google_absl//absl/log:absl_log",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "json_test",
|
|
srcs = ["json_test.cc"],
|
|
copts = COPTS,
|
|
deps = [
|
|
":json",
|
|
"//src/google/protobuf",
|
|
"//src/google/protobuf:cc_test_protos",
|
|
"//src/google/protobuf:port_def",
|
|
"//src/google/protobuf/io",
|
|
"//src/google/protobuf/util:json_format_cc_proto",
|
|
"//src/google/protobuf/util:json_format_proto3_cc_proto",
|
|
"//src/google/protobuf/util:type_resolver_util",
|
|
"@com_google_absl//absl/flags:flag",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/status:statusor",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_googletest//:gtest",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "test_input_stream",
|
|
testonly = True,
|
|
hdrs = ["internal/test_input_stream.h"],
|
|
copts = COPTS,
|
|
strip_include_prefix = "/src",
|
|
visibility = ["//visibility:private"],
|
|
deps = [
|
|
"//src/google/protobuf/io",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "zero_copy_buffered_stream",
|
|
srcs = ["internal/zero_copy_buffered_stream.cc"],
|
|
hdrs = ["internal/zero_copy_buffered_stream.h"],
|
|
copts = COPTS,
|
|
strip_include_prefix = "/src",
|
|
deps = [
|
|
"//src/google/protobuf:port_def",
|
|
"//src/google/protobuf/io",
|
|
"@com_google_absl//absl/algorithm:container",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/status:statusor",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/strings:str_format",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "zero_copy_buffered_stream_test",
|
|
srcs = ["internal/zero_copy_buffered_stream_test.cc"],
|
|
copts = COPTS,
|
|
deps = [
|
|
":test_input_stream",
|
|
":zero_copy_buffered_stream",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_googletest//:gtest",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "untyped_message",
|
|
srcs = ["internal/untyped_message.cc"],
|
|
hdrs = ["internal/untyped_message.h"],
|
|
copts = COPTS,
|
|
strip_include_prefix = "/src",
|
|
deps = [
|
|
"//src/google/protobuf",
|
|
"//src/google/protobuf:port_def",
|
|
"//src/google/protobuf:protobuf_lite",
|
|
"//src/google/protobuf/io",
|
|
"//src/google/protobuf/util:type_resolver_util",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/strings:str_format",
|
|
"@com_google_absl//absl/types:optional",
|
|
"@com_google_absl//absl/types:span",
|
|
"@com_google_absl//absl/types:variant",
|
|
"@utf8_range//:utf8_validity",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "lexer",
|
|
srcs = ["internal/lexer.cc"],
|
|
hdrs = ["internal/lexer.h"],
|
|
copts = COPTS,
|
|
strip_include_prefix = "/src",
|
|
deps = [
|
|
":message_path",
|
|
":zero_copy_buffered_stream",
|
|
"//src/google/protobuf:port_def",
|
|
"//src/google/protobuf/io",
|
|
"@com_google_absl//absl/algorithm:container",
|
|
"@com_google_absl//absl/numeric:bits",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/status:statusor",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/strings:str_format",
|
|
],
|
|
)
|
|
|
|
cc_test(
|
|
name = "lexer_test",
|
|
srcs = ["internal/lexer_test.cc"],
|
|
copts = COPTS,
|
|
timeout = "long",
|
|
deps = [
|
|
":lexer",
|
|
":test_input_stream",
|
|
"//src/google/protobuf/io",
|
|
"@com_google_absl//absl/algorithm:container",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/status:statusor",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/strings:str_format",
|
|
"@com_google_absl//absl/types:variant",
|
|
"@com_google_googletest//:gtest",
|
|
"@com_google_googletest//:gtest_main",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "writer",
|
|
srcs = ["internal/writer.cc"],
|
|
hdrs = ["internal/writer.h"],
|
|
copts = COPTS,
|
|
strip_include_prefix = "/src",
|
|
deps = [
|
|
"//src/google/protobuf:port_def",
|
|
"//src/google/protobuf/io",
|
|
"//src/google/protobuf/io:tokenizer",
|
|
"//src/google/protobuf/io:zero_copy_sink",
|
|
"@com_google_absl//absl/algorithm:container",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/strings:str_format",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "descriptor_traits",
|
|
hdrs = ["internal/descriptor_traits.h"],
|
|
copts = COPTS,
|
|
strip_include_prefix = "/src",
|
|
deps = [
|
|
":lexer",
|
|
":untyped_message",
|
|
"//src/google/protobuf",
|
|
"//src/google/protobuf:port_def",
|
|
"//src/google/protobuf/util:type_resolver_util",
|
|
"@com_google_absl//absl/algorithm:container",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/status:statusor",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/strings:str_format",
|
|
"@com_google_absl//absl/types:optional",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "parser",
|
|
srcs = [
|
|
"internal/parser.cc",
|
|
],
|
|
hdrs = [
|
|
"internal/parser.h",
|
|
"internal/parser_traits.h",
|
|
],
|
|
copts = COPTS,
|
|
strip_include_prefix = "/src",
|
|
deps = [
|
|
":descriptor_traits",
|
|
":lexer",
|
|
"//src/google/protobuf",
|
|
"//src/google/protobuf:port_def",
|
|
"//src/google/protobuf/io",
|
|
"//src/google/protobuf/io:zero_copy_sink",
|
|
"//src/google/protobuf/util:type_resolver_util",
|
|
"@com_google_absl//absl/base",
|
|
"@com_google_absl//absl/base:core_headers",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/container:flat_hash_set",
|
|
"@com_google_absl//absl/log:absl_check",
|
|
"@com_google_absl//absl/log:absl_log",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/status:statusor",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/strings:str_format",
|
|
"@com_google_absl//absl/types:optional",
|
|
"@com_google_absl//absl/types:span",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "unparser",
|
|
srcs = [
|
|
"internal/unparser.cc",
|
|
],
|
|
hdrs = [
|
|
"internal/unparser.h",
|
|
"internal/unparser_traits.h",
|
|
],
|
|
copts = COPTS,
|
|
strip_include_prefix = "/src",
|
|
deps = [
|
|
":descriptor_traits",
|
|
":untyped_message",
|
|
":writer",
|
|
"//src/google/protobuf",
|
|
"//src/google/protobuf:port_def",
|
|
"//src/google/protobuf/io",
|
|
"//src/google/protobuf/util:type_resolver_util",
|
|
"@com_google_absl//absl/container:flat_hash_map",
|
|
"@com_google_absl//absl/log:absl_check",
|
|
"@com_google_absl//absl/log:absl_log",
|
|
"@com_google_absl//absl/status",
|
|
"@com_google_absl//absl/strings",
|
|
"@com_google_absl//absl/strings:str_format",
|
|
"@com_google_absl//absl/types:optional",
|
|
"@com_google_absl//absl/types:variant",
|
|
],
|
|
)
|
|
|
|
cc_library(
|
|
name = "message_path",
|
|
srcs = ["internal/message_path.cc"],
|
|
hdrs = ["internal/message_path.h"],
|
|
copts = COPTS,
|
|
strip_include_prefix = "/src",
|
|
deps = [
|
|
"//src/google/protobuf",
|
|
"@com_google_absl//absl/cleanup",
|
|
"@com_google_absl//absl/strings",
|
|
],
|
|
)
|