| # 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("@bazel_skylib//lib:selects.bzl", "selects") | |
| load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") | |
| load("@rules_cc//cc:defs.bzl", "cc_library") | |
| load("//upb/bazel:copts.bzl", "UPB_DEFAULT_COPTS", "UPB_DEFAULT_FEATURES") | |
| load("//upb/bazel/private:upb_proto_library_internal/copts.bzl", "upb_proto_library_copts") | |
| load("//upb/bazel/private/oss:amalgamation.bzl", "upb_amalgamation") # buildifier: disable=bzl-visibility | |
| package(default_applicable_licenses = ["//:license"]) | |
| licenses(["notice"]) | |
| exports_files(["LICENSE"]) | |
| exports_files( | |
| [ | |
| "BUILD", | |
| ], | |
| visibility = ["//upb/cmake:__pkg__"], | |
| ) | |
| UPB_CONFIG_VISIBILITY = [ | |
| "//benchmarks:__subpackages__", | |
| "//hpb:__subpackages__", | |
| "//hpb_generator:__subpackages__", | |
| "//lua:__pkg__", | |
| "//python:__pkg__", | |
| "//src/google/protobuf/compiler:__subpackages__", | |
| "//third_party/kotlin/protobuf:__subpackages__", | |
| "//upb:__subpackages__", | |
| "//upb_generator:__subpackages__", | |
| "//src/google/protobuf/compiler:__subpackages__", | |
| ] | |
| config_setting( | |
| name = "windows", | |
| constraint_values = ["@platforms//os:windows"], | |
| visibility = UPB_CONFIG_VISIBILITY, | |
| ) | |
| bool_flag( | |
| name = "fasttable_enabled", | |
| build_setting_default = False, | |
| scope = "universal", | |
| visibility = UPB_CONFIG_VISIBILITY, | |
| ) | |
| config_setting( | |
| name = "fasttable_enabled_setting_flag", | |
| flag_values = {"//upb:fasttable_enabled": "true"}, | |
| visibility = UPB_CONFIG_VISIBILITY, | |
| ) | |
| selects.config_setting_group( | |
| name = "fasttable_enabled_setting", | |
| match_all = [ | |
| ":fasttable_enabled_setting_flag", | |
| ":any_64bit", | |
| ], | |
| visibility = UPB_CONFIG_VISIBILITY, | |
| ) | |
| selects.config_setting_group( | |
| name = "any_64bit", | |
| match_any = [ | |
| "@platforms//cpu:aarch64", | |
| "@platforms//cpu:arm64", | |
| "@platforms//cpu:cortex-r82", | |
| "@platforms//cpu:mips64", | |
| "@platforms//cpu:ppc64le", | |
| "@platforms//cpu:riscv64", | |
| "@platforms//cpu:s390x", | |
| "@platforms//cpu:wasm64", | |
| "@platforms//cpu:x86_64", | |
| ], | |
| visibility = UPB_CONFIG_VISIBILITY, | |
| ) | |
| upb_proto_library_copts( | |
| name = "upb_proto_library_copts", | |
| copts = UPB_DEFAULT_COPTS, | |
| features = UPB_DEFAULT_FEATURES, | |
| visibility = ["//upb/bazel:__pkg__"], | |
| ) | |
| # Please update copy.bara.sky target = ":friends" if | |
| # you make changes to this list. | |
| package_group( | |
| name = "friends", | |
| packages = ["//..."], | |
| ) | |
| package_group( | |
| name = "friend_generators", | |
| packages = ["//..."], | |
| ) | |
| # Common support routines used by generated code. This library has no | |
| # implementation, but depends on :upb and exposes a few more hdrs. | |
| # | |
| # This is public only because we have no way of visibility-limiting it to | |
| # upb_c_proto_library() only. This interface is not stable and by using it you | |
| # give up any backward compatibility guarantees. | |
| cc_library( | |
| name = "generated_code_support", | |
| hdrs = ["generated_code_support.h"], | |
| copts = UPB_DEFAULT_COPTS, | |
| features = UPB_DEFAULT_FEATURES, | |
| textual_hdrs = [ | |
| "//upb/port:inc", | |
| ], | |
| visibility = [ | |
| "//pkg:__pkg__", | |
| "//upb/reflection:__pkg__", | |
| "//upb_generator:__subpackages__", | |
| ], | |
| deps = [ | |
| "//upb/base", | |
| "//upb/mem", | |
| "//upb/message", | |
| "//upb/message:internal", | |
| "//upb/mini_descriptor", | |
| "//upb/mini_table", | |
| "//upb/mini_table:internal", | |
| "//upb/wire", | |
| ] + select({ | |
| ":fasttable_enabled_setting": [ | |
| "//upb/wire/decode_fast:field_parsers", | |
| ], | |
| "//conditions:default": [ | |
| ], | |
| }), | |
| ) | |
| # Common support code for C++ generated code. | |
| cc_library( | |
| name = "generated_cpp_support", | |
| copts = UPB_DEFAULT_COPTS, | |
| features = UPB_DEFAULT_FEATURES, | |
| textual_hdrs = [ | |
| "//upb/port:inc", | |
| ], | |
| visibility = ["//hpb/bazel:__pkg__"], | |
| ) | |
| # Amalgamation ################################################################# | |
| upb_amalgamation( | |
| name = "gen_amalgamation", | |
| outs = [ | |
| "upb.c", | |
| "upb.h", | |
| ], | |
| libs = [ | |
| ":generated_code_support", | |
| "//src/google/protobuf:descriptor_upb_c_proto", | |
| "//src/google/protobuf:descriptor_upb_minitable_proto", | |
| "//src/google/protobuf:json_enumvalue_options_upb_c_proto", | |
| "//src/google/protobuf:json_enumvalue_options_upb_minitable_proto", | |
| "//upb/base", | |
| "//upb/base:internal", | |
| "//upb/hash:hash", | |
| "//upb/lex:lex", | |
| "//upb/mem", | |
| "//upb/mem:internal", | |
| "//upb/message", | |
| "//upb/message:message_unknowns", | |
| "//upb/message:compare", | |
| "//upb/message:copy", | |
| "//upb/message:internal", | |
| "//upb/message:iterator", | |
| "//upb/message:types", | |
| "//upb/mini_descriptor", | |
| "//upb/mini_descriptor:internal", | |
| "//upb/mini_table", | |
| "//upb/mini_table:internal", | |
| "//upb/port", | |
| "//upb/reflection", | |
| "//upb/reflection:descriptor_upb_proto", | |
| "//upb/reflection:json_enumvalue_options_upb_proto", | |
| "//upb/reflection:internal", | |
| "//upb/reflection:def_pool_init", | |
| "//upb/text", | |
| "//upb/text:debug", | |
| "//upb/text:internal", | |
| "//upb/wire", | |
| "//upb/wire:encode_extension", | |
| "//upb/wire:back_alloc", | |
| "//upb/wire:byte_size", | |
| "//upb/wire:decoder", | |
| "//upb/wire:encoder", | |
| "//upb/wire:eps_copy_input_stream", | |
| "//upb/wire:eps_copy_input_stream_internal", | |
| "//upb/wire:reader", | |
| "//upb/wire:reader_internal", | |
| "//upb/wire:writer", | |
| ], | |
| strip_import_prefix = ["src"], | |
| visibility = ["//rust:__pkg__"], | |
| ) | |
| cc_library( | |
| name = "amalgamation", | |
| srcs = ["upb.c"], | |
| hdrs = ["upb.h"], | |
| copts = UPB_DEFAULT_COPTS, | |
| deps = ["//third_party/utf8_range"], | |
| ) | |
| upb_amalgamation( | |
| name = "gen_php_amalgamation", | |
| outs = [ | |
| "php-upb.c", | |
| "php-upb.h", | |
| ], | |
| libs = [ | |
| ":generated_code_support", | |
| "//src/google/protobuf:descriptor_upb_c_proto", | |
| "//src/google/protobuf:descriptor_upb_minitable_proto", | |
| "//src/google/protobuf:descriptor_upb_reflection_proto", | |
| "//src/google/protobuf:json_enumvalue_options_upb_c_proto", | |
| "//src/google/protobuf:json_enumvalue_options_upb_minitable_proto", | |
| "//src/google/protobuf:json_enumvalue_options_upb_reflection_proto", | |
| "//upb/base", | |
| "//upb/base:internal", | |
| "//upb/hash:hash", | |
| "//upb/json", | |
| "//upb/lex:lex", | |
| "//upb/mem", | |
| "//upb/mem:internal", | |
| "//upb/message", | |
| "//upb/message:message_unknowns", | |
| "//upb/message:compare", | |
| "//upb/message:copy", | |
| "//upb/message:internal", | |
| "//upb/message:iterator", | |
| "//upb/message:types", | |
| "//upb/mini_descriptor", | |
| "//upb/mini_descriptor:internal", | |
| "//upb/mini_table", | |
| "//upb/mini_table:internal", | |
| "//upb/port", | |
| "//upb/reflection", | |
| "//upb/reflection:descriptor_upb_proto", | |
| "//upb/reflection:json_enumvalue_options_upb_proto", | |
| "//upb/reflection:internal", | |
| "//upb/wire", | |
| "//upb/wire:encode_extension", | |
| "//upb/wire:back_alloc", | |
| "//upb/wire:decoder", | |
| "//upb/wire:encoder", | |
| "//upb/wire:eps_copy_input_stream", | |
| "//upb/wire:eps_copy_input_stream_internal", | |
| "//upb/wire:reader", | |
| "//upb/wire:reader_internal", | |
| "//upb/wire:writer", | |
| ], | |
| prefix = "php-", | |
| strip_import_prefix = ["src"], | |
| visibility = ["@com_google_protobuf//php:__subpackages__"], | |
| ) | |
| cc_library( | |
| name = "php_amalgamation", | |
| srcs = ["php-upb.c"], | |
| hdrs = ["php-upb.h"], | |
| copts = UPB_DEFAULT_COPTS, | |
| deps = ["//third_party/utf8_range"], | |
| ) | |
| upb_amalgamation( | |
| name = "gen_ruby_amalgamation", | |
| outs = [ | |
| "ruby-upb.c", | |
| "ruby-upb.h", | |
| ], | |
| libs = [ | |
| ":generated_code_support", | |
| "//src/google/protobuf:descriptor_upb_c_proto", | |
| "//src/google/protobuf:descriptor_upb_minitable_proto", | |
| "//src/google/protobuf:json_enumvalue_options_upb_c_proto", | |
| "//src/google/protobuf:json_enumvalue_options_upb_minitable_proto", | |
| "//upb/base", | |
| "//upb/base:internal", | |
| "//upb/hash:hash", | |
| "//upb/json", | |
| "//upb/lex:lex", | |
| "//upb/mem", | |
| "//upb/mem:internal", | |
| "//upb/message", | |
| "//upb/message:message_unknowns", | |
| "//upb/message:compare", | |
| "//upb/message:copy", | |
| "//upb/message:internal", | |
| "//upb/message:iterator", | |
| "//upb/message:types", | |
| "//upb/mini_descriptor", | |
| "//upb/mini_descriptor:internal", | |
| "//upb/mini_table", | |
| "//upb/mini_table:internal", | |
| "//upb/port", | |
| "//upb/reflection", | |
| "//upb/reflection:descriptor_upb_proto", | |
| "//upb/reflection:json_enumvalue_options_upb_proto", | |
| "//upb/reflection:internal", | |
| "//upb/util:def_to_proto", | |
| "//upb/wire", | |
| "//upb/wire:encode_extension", | |
| "//upb/wire:back_alloc", | |
| "//upb/wire:decoder", | |
| "//upb/wire:encoder", | |
| "//upb/wire:eps_copy_input_stream", | |
| "//upb/wire:eps_copy_input_stream_internal", | |
| "//upb/wire:reader", | |
| "//upb/wire:reader_internal", | |
| "//upb/wire:writer", | |
| ], | |
| prefix = "ruby-", | |
| strip_import_prefix = ["src"], | |
| visibility = ["@com_google_protobuf//ruby:__subpackages__"], | |
| ) | |
| cc_library( | |
| name = "ruby_amalgamation", | |
| srcs = ["ruby-upb.c"], | |
| hdrs = ["ruby-upb.h"], | |
| copts = UPB_DEFAULT_COPTS, | |
| deps = ["//third_party/utf8_range"], | |
| ) | |
| filegroup( | |
| name = "source_files", | |
| srcs = glob( | |
| [ | |
| "**/*.h", | |
| ], | |
| exclude = [ | |
| "**/conformance_upb.c", | |
| "reflection/stage0/**/*", | |
| ], | |
| ), | |
| visibility = [ | |
| "//python/dist:__pkg__", | |
| "//upb/cmake:__pkg__", | |
| ], | |
| ) | |
| filegroup( | |
| name = "test_protos", | |
| testonly = 1, | |
| srcs = [ | |
| "//src/google/protobuf:test_messages_proto2.proto", | |
| "//src/google/protobuf:test_messages_proto3.proto", | |
| "//src/google/protobuf:well_known_type_protos", | |
| "//upb/json:test_protos", | |
| "//upb/message:test_protos", | |
| "//upb/mini_table:test_protos", | |
| "//upb/test:test_protos", | |
| "//upb/util:test_protos", | |
| "//upb/wire:test_protos", | |
| ], | |
| visibility = ["//pkg:__pkg__"], | |
| ) | |
| filegroup( | |
| name = "test_srcs", | |
| srcs = [ | |
| "//upb/hash:test_srcs", | |
| "//upb/json:test_srcs", | |
| "//upb/lex:test_srcs", | |
| "//upb/mem:test_srcs", | |
| "//upb/message:test_srcs", | |
| "//upb/mini_descriptor:test_srcs", | |
| "//upb/mini_table:test_srcs", | |
| "//upb/test:test_srcs", | |
| "//upb/util:test_srcs", | |
| "//upb/wire:test_srcs", | |
| ], | |
| visibility = ["//pkg:__pkg__"], | |
| ) | |
| cc_library( | |
| name = "test_util", | |
| testonly = True, | |
| visibility = ["//pkg:__pkg__"], | |
| deps = [ | |
| "//upb/test:fuzz_util", | |
| "//upb/test:parse_text_proto", | |
| "//upb/util:def_to_proto_test_lib", | |
| "//upb/wire/test_util:field_types", | |
| "//upb/wire/test_util:make_mini_table", | |
| "//upb/wire/test_util:wire_message", | |
| ], | |
| ) |