| # Copyright (c) 2009-2021, Google LLC |
| # All rights reserved. |
| # |
| # Use of this source code is governed by a BSD-style |
| # license that can be found in the LICENSE file or at |
| # https://developers.google.com/open-source/licenses/bsd |
| |
| load("@rules_cc//cc:cc_binary.bzl", "cc_binary") |
| load("@rules_cc//cc:cc_library.bzl", "cc_library") |
| load("@rules_cc//cc:cc_test.bzl", "cc_test") |
| load("//upb/bazel:build_defs.bzl", "UPB_DEFAULT_COPTS", "UPB_DEFAULT_CPPOPTS") |
| |
| package(default_applicable_licenses = ["//:license"]) |
| |
| cc_library( |
| name = "decoder", |
| srcs = [ |
| "internal/decoder.c", |
| ], |
| hdrs = [ |
| "decode.h", |
| "internal/decoder.h", |
| ], |
| copts = UPB_DEFAULT_COPTS, |
| visibility = [ |
| "//upb:__pkg__", |
| "//upb/wire/decode_fast:__subpackages__", |
| ], |
| deps = [ |
| ":eps_copy_input_stream", |
| "//third_party/utf8_range", |
| "//upb/mem", |
| "//upb/mem:internal", |
| "//upb/message", |
| "//upb/message:internal", |
| "//upb/mini_table", |
| "//upb/mini_table:internal", |
| "//upb/port", |
| ], |
| ) |
| |
| cc_library( |
| name = "wire", |
| srcs = [ |
| "decode.c", |
| "encode.c", |
| "internal/constants.h", |
| ], |
| hdrs = [ |
| "decode.h", |
| "encode.h", |
| ], |
| copts = UPB_DEFAULT_COPTS, |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":decoder", |
| ":eps_copy_input_stream", |
| ":reader", |
| ":writer", |
| "//third_party/utf8_range", |
| "//upb/base", |
| "//upb/base:internal", |
| "//upb/hash", |
| "//upb/mem", |
| "//upb/mem:internal", |
| "//upb/message", |
| "//upb/message:internal", |
| "//upb/message:iterator", |
| "//upb/message:types", |
| "//upb/mini_table", |
| "//upb/mini_table:internal", |
| "//upb/port", |
| ] + select({ |
| "//upb:fasttable_enabled_setting": [ |
| "//upb/wire/decode_fast:dispatch", |
| ], |
| "//conditions:default": [], |
| }), |
| ) |
| |
| cc_test( |
| name = "decode_test", |
| srcs = ["decode_test.cc"], |
| copts = UPB_DEFAULT_CPPOPTS, |
| deps = [ |
| ":wire", |
| "//upb/mem", |
| "//upb/message", |
| "//upb/message:message_cc", |
| "//upb/mini_table", |
| "//upb/port", |
| "//upb/wire/decode_fast:combinations", |
| "//upb/wire/test_util:field_types", |
| "//upb/wire/test_util:make_mini_table", |
| "//upb/wire/test_util:wire_message", |
| "@abseil-cpp//absl/strings", |
| "@abseil-cpp//absl/strings:string_view", |
| "@googletest//:gtest", |
| "@googletest//:gtest_main", |
| ], |
| ) |
| |
| cc_binary( |
| name = "decode_benchmark", |
| testonly = True, |
| srcs = ["decode_benchmark.cc"], |
| copts = UPB_DEFAULT_CPPOPTS, |
| deps = [ |
| ":wire", |
| "//upb/mem", |
| "//upb/message", |
| "//upb/mini_table", |
| "//upb/port", |
| "//upb/wire/decode_fast:combinations", |
| "//upb/wire/test_util:field_types", |
| "//upb/wire/test_util:make_mini_table", |
| "//upb/wire/test_util:wire_message", |
| "@abseil-cpp//absl/container:flat_hash_set", |
| "@google_benchmark//:benchmark_main", |
| "@googletest//:gtest", |
| "@googletest//:gtest_main", |
| ], |
| ) |
| |
| cc_library( |
| name = "reader_internal", |
| hdrs = ["internal/reader.h"], |
| copts = UPB_DEFAULT_COPTS, |
| visibility = ["//upb:__pkg__"], |
| deps = [ |
| ":eps_copy_input_stream", |
| "//upb/port", |
| ], |
| ) |
| |
| cc_library( |
| name = "reader", |
| srcs = ["reader.c"], |
| hdrs = [ |
| "reader.h", |
| "types.h", |
| ], |
| copts = UPB_DEFAULT_COPTS, |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":eps_copy_input_stream", |
| ":reader_internal", |
| "//upb/base:internal", |
| "//upb/port", |
| ], |
| ) |
| |
| cc_library( |
| name = "writer", |
| hdrs = [ |
| "writer.h", |
| ], |
| copts = UPB_DEFAULT_COPTS, |
| visibility = [ |
| "//upb:__pkg__", |
| "//upb/message:__pkg__", |
| ], |
| deps = [ |
| "//upb/port", |
| ], |
| ) |
| |
| cc_library( |
| name = "byte_size", |
| srcs = ["byte_size.c"], |
| hdrs = ["byte_size.h"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":wire", |
| "//upb/mem", |
| "//upb/message", |
| "//upb/mini_table", |
| "//upb/port", |
| ], |
| ) |
| |
| cc_test( |
| name = "byte_size_test", |
| srcs = ["byte_size_test.cc"], |
| deps = [ |
| ":byte_size", |
| "//upb/base", |
| "//upb/mem", |
| "//upb/mini_table", |
| "//upb/test:test_messages_proto2_upb_minitable", |
| "//upb/test:test_messages_proto2_upb_proto", |
| "@googletest//:gtest", |
| "@googletest//:gtest_main", |
| ], |
| ) |
| |
| cc_library( |
| name = "eps_copy_input_stream", |
| srcs = ["eps_copy_input_stream.c"], |
| hdrs = ["eps_copy_input_stream.h"], |
| visibility = ["//visibility:public"], |
| deps = [ |
| "//upb/mem", |
| "//upb/port", |
| ], |
| ) |
| |
| cc_test( |
| name = "eps_copy_input_stream_test", |
| srcs = ["eps_copy_input_stream_test.cc"], |
| deps = [ |
| ":eps_copy_input_stream", |
| "//upb/mem", |
| "@googletest//:gtest", |
| "@googletest//:gtest_main", |
| ], |
| ) |
| |
| filegroup( |
| name = "source_files", |
| srcs = glob( |
| [ |
| "**/*.c", |
| "**/*.h", |
| ], |
| ), |
| visibility = [ |
| "//python/dist:__pkg__", |
| "//upb/cmake:__pkg__", |
| ], |
| ) |
| |
| filegroup( |
| name = "test_srcs", |
| srcs = glob( |
| [ |
| "**/*test.cc", |
| ], |
| ), |
| visibility = ["//upb:__pkg__"], |
| ) |