blob: 72c41364ed0eb93aaef3635ce813b96071aaaa11 [file] [log] [blame]
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",
"//src/google/protobuf/io",
"//src/google/protobuf/io:zero_copy_sink",
"//src/google/protobuf/stubs",
"//src/google/protobuf/util:type_resolver",
"@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:duration_cc_proto",
"//src/google/protobuf:field_mask_cc_proto",
"//src/google/protobuf:port",
"//src/google/protobuf:struct_cc_proto",
"//src/google/protobuf:timestamp_cc_proto",
"//src/google/protobuf:wrappers_cc_proto",
"//src/google/protobuf/io",
"//src/google/protobuf/io:test_zero_copy_stream",
"//src/google/protobuf/stubs",
"//src/google/protobuf/util:json_format_cc_proto",
"//src/google/protobuf/util:json_format_proto3_cc_proto",
"//src/google/protobuf/util:type_resolver",
"@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 = "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",
"//src/google/protobuf/io",
"//src/google/protobuf/stubs",
"@com_google_absl//absl/algorithm:container",
"@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",
],
)
cc_test(
name = "zero_copy_buffered_stream_test",
srcs = ["internal/zero_copy_buffered_stream_test.cc"],
copts = COPTS,
deps = [
":zero_copy_buffered_stream",
"//src/google/protobuf/io:test_zero_copy_stream",
"//src/google/protobuf/stubs",
"@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",
"//src/google/protobuf:protobuf_lite",
"//src/google/protobuf:type_cc_proto",
"//src/google/protobuf/io",
"//src/google/protobuf/stubs",
"//src/google/protobuf/util:type_resolver",
"//third_party/utf8_range:utf8_validity",
"@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:span",
"@com_google_absl//absl/types:variant",
],
)
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",
"//src/google/protobuf:port",
"//src/google/protobuf/io",
"//src/google/protobuf/stubs",
"//third_party/utf8_range:utf8_validity",
"@com_google_absl//absl/algorithm:container",
"@com_google_absl//absl/log:absl_check",
"@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",
timeout = "long",
srcs = ["internal/lexer_test.cc"],
copts = COPTS,
deps = [
":lexer",
"//src/google/protobuf:port",
"//src/google/protobuf/io",
"//src/google/protobuf/io:test_zero_copy_stream",
"//src/google/protobuf/stubs",
"@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",
"//src/google/protobuf/io",
"//src/google/protobuf/io:tokenizer",
"//src/google/protobuf/io:zero_copy_sink",
"//src/google/protobuf/stubs:lite",
"@com_google_absl//absl/algorithm:container",
"@com_google_absl//absl/log:absl_check",
"@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",
"//src/google/protobuf/util:type_resolver",
"@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",
"//src/google/protobuf:protobuf_lite",
"//src/google/protobuf:type_cc_proto",
"//src/google/protobuf/io",
"//src/google/protobuf/io:zero_copy_sink",
"//src/google/protobuf/stubs",
"//src/google/protobuf/util:type_resolver",
"@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",
"//src/google/protobuf:type_cc_proto",
"//src/google/protobuf/io",
"//src/google/protobuf/stubs",
"//src/google/protobuf/util:type_resolver",
"@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",
"//src/google/protobuf:port",
"@com_google_absl//absl/cleanup",
"@com_google_absl//absl/strings",
],
)