| # 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_python//python:defs.bzl", "py_binary") | 
 | load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") | 
 | load("//bazel:build_defs.bzl", "UPB_DEFAULT_COPTS") | 
 | load("//bazel:upb_minitable_proto_library.bzl", "upb_minitable_proto_library") | 
 | load("//bazel:upb_proto_library.bzl", "upb_proto_reflection_library") | 
 | load("//bazel:upb_proto_library_internal/copts.bzl", "upb_proto_library_copts") | 
 | load( | 
 |     "//upb_generator:bootstrap_compiler.bzl", | 
 |     "bootstrap_cc_library", | 
 |     "bootstrap_upb_proto_library", | 
 | ) | 
 |  | 
 | # begin:google_only | 
 | # load("//tools/build_defs/kotlin/native:rules.bzl", "kt_native_interop_hint") | 
 | # load("//tools/build_defs/license:license.bzl", "license") | 
 | # end:google_only | 
 |  | 
 | # begin:github_only | 
 | load( | 
 |     "//bazel:amalgamation.bzl", | 
 |     "upb_amalgamation", | 
 | ) | 
 | # end:github_only | 
 |  | 
 | # begin:google_only | 
 | # package(default_applicable_licenses = ["//upb:license"]) | 
 | # | 
 | # license( | 
 | #     name = "license", | 
 | #     package_name = "upb", | 
 | # ) | 
 | # end:google_only | 
 |  | 
 | licenses(["notice"]) | 
 |  | 
 | exports_files(["LICENSE"]) | 
 |  | 
 | exports_files( | 
 |     [ | 
 |         "BUILD", | 
 |         "WORKSPACE", | 
 |     ], | 
 |     visibility = ["//upb/cmake:__pkg__"], | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "windows", | 
 |     constraint_values = ["@platforms//os:windows"], | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | bool_flag( | 
 |     name = "fasttable_enabled", | 
 |     build_setting_default = False, | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "fasttable_enabled_setting", | 
 |     flag_values = {"//upb:fasttable_enabled": "true"}, | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | upb_proto_library_copts( | 
 |     name = "upb_proto_library_copts__for_generated_code_only_do_not_use", | 
 |     copts = UPB_DEFAULT_COPTS, | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | # 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 = ["//..."], | 
 | ) | 
 |  | 
 | cc_library( | 
 |     name = "upb", | 
 |     hdrs = [ | 
 |         "upb.hpp", | 
 |     ], | 
 |     copts = UPB_DEFAULT_COPTS, | 
 |     deprecation = "use upb:base and/or upb:mem instead", | 
 |     visibility = ["//visibility:public"], | 
 |     deps = [ | 
 |         ":base", | 
 |         ":mem", | 
 |     ], | 
 | ) | 
 |  | 
 | # 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_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__only_for_generated_code_do_not_use__i_give_permission_to_break_me", | 
 |     hdrs = ["generated_code_support.h"], | 
 |     copts = UPB_DEFAULT_COPTS, | 
 |     textual_hdrs = [ | 
 |         "//upb/port:inc", | 
 |     ], | 
 |     visibility = ["//visibility:public"], | 
 |     deps = [ | 
 |         ":base", | 
 |         ":mem", | 
 |         ":message", | 
 |         ":message_accessors", | 
 |         ":message_accessors_internal", | 
 |         ":message_internal", | 
 |         ":mini_descriptor", | 
 |         ":mini_table", | 
 |         ":wire", | 
 |         ":wire_internal", | 
 |     ], | 
 | ) | 
 |  | 
 | # Common support code for C++ generated code. | 
 | cc_library( | 
 |     name = "generated_cpp_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me", | 
 |     copts = UPB_DEFAULT_COPTS, | 
 |     textual_hdrs = [ | 
 |         "//upb/port:inc", | 
 |     ], | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | cc_library( | 
 |     name = "generated_reflection_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me", | 
 |     hdrs = [ | 
 |         "reflection/def.h", | 
 |         "reflection/internal/def_pool.h", | 
 |     ], | 
 |     copts = UPB_DEFAULT_COPTS, | 
 |     textual_hdrs = [ | 
 |         "//upb/port:inc", | 
 |     ], | 
 |     visibility = ["//visibility:public"], | 
 |     deps = [ | 
 |         ":mem", | 
 |         ":mini_descriptor", | 
 |         ":reflection_internal", | 
 |     ], | 
 | ) | 
 |  | 
 | bootstrap_upb_proto_library( | 
 |     name = "descriptor_upb_proto", | 
 |     base_dir = "reflection/", | 
 |     # TODO: Export 'net/proto2/proto/descriptor.upb.h' and remove "-layering_check". | 
 |     features = ["-layering_check"], | 
 |     google3_src_files = ["net/proto2/proto/descriptor.proto"], | 
 |     google3_src_rules = ["//net/proto2/proto:descriptor_proto_source"], | 
 |     oss_src_files = ["google/protobuf/descriptor.proto"], | 
 |     oss_src_rules = ["//:descriptor_proto_srcs"], | 
 |     oss_strip_prefix = "third_party/protobuf/github/bootstrap/src", | 
 |     proto_lib_deps = ["//:descriptor_proto"], | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | upb_proto_reflection_library( | 
 |     name = "descriptor_upb_proto_reflection", | 
 |     visibility = ["//visibility:public"], | 
 |     deps = ["//:descriptor_proto"], | 
 | ) | 
 |  | 
 | upb_minitable_proto_library( | 
 |     name = "descriptor_upb_minitable_proto", | 
 |     visibility = [ | 
 |         "//upb:__subpackages__", | 
 |         # begin:github_only | 
 |         "//python:__subpackages__", | 
 |         # end:github_only | 
 |     ], | 
 |     deps = ["//:descriptor_proto"], | 
 | ) | 
 |  | 
 | # TODO: Once we can delete the deprecated forwarding headers | 
 | # (= everything in upb/) we can move this build target down into reflection/ | 
 | bootstrap_cc_library( | 
 |     name = "reflection", | 
 |     hdrs = [ | 
 |         "reflection/def.h", | 
 |         "reflection/def.hpp", | 
 |         "reflection/message.h", | 
 |         "reflection/message.hpp", | 
 |     ], | 
 |     bootstrap_deps = [":reflection_internal"], | 
 |     copts = UPB_DEFAULT_COPTS, | 
 |     visibility = ["//visibility:public"], | 
 |     deps = [ | 
 |         ":base", | 
 |         ":mem", | 
 |         ":message", | 
 |         ":message_types", | 
 |         ":message_value", | 
 |         ":port", | 
 |     ], | 
 | ) | 
 |  | 
 | bootstrap_cc_library( | 
 |     name = "reflection_internal", | 
 |     srcs = [ | 
 |         "reflection/def_pool.c", | 
 |         "reflection/def_type.c", | 
 |         "reflection/desc_state.c", | 
 |         "reflection/enum_def.c", | 
 |         "reflection/enum_reserved_range.c", | 
 |         "reflection/enum_value_def.c", | 
 |         "reflection/extension_range.c", | 
 |         "reflection/field_def.c", | 
 |         "reflection/file_def.c", | 
 |         "reflection/internal/def_builder.c", | 
 |         "reflection/internal/def_builder.h", | 
 |         "reflection/internal/strdup2.c", | 
 |         "reflection/internal/strdup2.h", | 
 |         "reflection/message.c", | 
 |         "reflection/message_def.c", | 
 |         "reflection/message_reserved_range.c", | 
 |         "reflection/method_def.c", | 
 |         "reflection/oneof_def.c", | 
 |         "reflection/service_def.c", | 
 |     ], | 
 |     hdrs = [ | 
 |         "reflection/common.h", | 
 |         "reflection/def.h", | 
 |         "reflection/def.hpp", | 
 |         "reflection/def_pool.h", | 
 |         "reflection/def_type.h", | 
 |         "reflection/enum_def.h", | 
 |         "reflection/enum_reserved_range.h", | 
 |         "reflection/enum_value_def.h", | 
 |         "reflection/extension_range.h", | 
 |         "reflection/field_def.h", | 
 |         "reflection/file_def.h", | 
 |         "reflection/internal/def_pool.h", | 
 |         "reflection/internal/desc_state.h", | 
 |         "reflection/internal/enum_def.h", | 
 |         "reflection/internal/enum_reserved_range.h", | 
 |         "reflection/internal/enum_value_def.h", | 
 |         "reflection/internal/extension_range.h", | 
 |         "reflection/internal/field_def.h", | 
 |         "reflection/internal/file_def.h", | 
 |         "reflection/internal/message_def.h", | 
 |         "reflection/internal/message_reserved_range.h", | 
 |         "reflection/internal/method_def.h", | 
 |         "reflection/internal/oneof_def.h", | 
 |         "reflection/internal/service_def.h", | 
 |         "reflection/message.h", | 
 |         "reflection/message.hpp", | 
 |         "reflection/message_def.h", | 
 |         "reflection/message_reserved_range.h", | 
 |         "reflection/method_def.h", | 
 |         "reflection/oneof_def.h", | 
 |         "reflection/service_def.h", | 
 |     ], | 
 |     bootstrap_deps = [":descriptor_upb_proto"], | 
 |     copts = UPB_DEFAULT_COPTS, | 
 |     visibility = ["//visibility:public"], | 
 |     deps = [ | 
 |         ":base", | 
 |         ":hash", | 
 |         ":mem", | 
 |         ":message", | 
 |         ":message_accessors", | 
 |         ":message_types", | 
 |         ":message_value", | 
 |         ":mini_descriptor", | 
 |         ":mini_descriptor_internal", | 
 |         ":mini_table", | 
 |         ":port", | 
 |     ], | 
 | ) | 
 |  | 
 | # Aliases ###################################################################### | 
 | # TODO: Remove these. | 
 |  | 
 | alias( | 
 |     name = "base", | 
 |     actual = "//upb/base", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "base_internal", | 
 |     actual = "//upb/base:internal", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "collections", | 
 |     actual = "//upb/collections", | 
 |     deprecation = "use upb:message instead", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "hash", | 
 |     actual = "//upb/hash", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "json", | 
 |     actual = "//upb/json", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "lex", | 
 |     actual = "//upb/lex", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "mem", | 
 |     actual = "//upb/mem", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "mem_internal", | 
 |     actual = "//upb/mem:internal", | 
 |     visibility = ["//upb:__subpackages__"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "message", | 
 |     actual = "//upb/message", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "message_accessors", | 
 |     actual = "//upb/message:accessors", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "message_accessors_internal", | 
 |     actual = "//upb/message:accessors_internal", | 
 |     visibility = ["//upb:friends"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "message_copy", | 
 |     actual = "//upb/message:copy", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "message_internal", | 
 |     actual = "//upb/message:internal", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "message_internal_types", | 
 |     actual = "//upb/message:internal_types", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "message_promote", | 
 |     actual = "//upb/message:promote", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "message_split64", | 
 |     actual = "//upb/message:split64", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "message_tagged_ptr", | 
 |     actual = "//upb/message:tagged_ptr", | 
 |     visibility = ["//upb:friends"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "message_types", | 
 |     actual = "//upb/message:types", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "message_value", | 
 |     actual = "//upb/message:value", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "mini_descriptor", | 
 |     actual = "//upb/mini_descriptor", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "mini_descriptor_internal", | 
 |     actual = "//upb/mini_descriptor:internal", | 
 |     visibility = ["//upb:__subpackages__"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "mini_table", | 
 |     actual = "//upb/mini_table", | 
 |     visibility = ["//upb:friends"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "mini_table_compat", | 
 |     actual = "//upb/mini_table:compat", | 
 |     visibility = ["//upb:friends"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "mini_table_internal", | 
 |     actual = "//upb/mini_table:internal", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "port", | 
 |     actual = "//upb/port", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "text", | 
 |     actual = "//upb/text", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "wire", | 
 |     actual = "//upb/wire", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "wire_internal", | 
 |     actual = "//upb/wire:internal", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "wire_reader", | 
 |     actual = "//upb/wire:reader", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "wire_types", | 
 |     actual = "//upb/wire:types", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | alias( | 
 |     name = "eps_copy_input_stream", | 
 |     actual = "//upb/wire:eps_copy_input_stream", | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | # Tests ######################################################################## | 
 |  | 
 | cc_test( | 
 |     name = "def_builder_test", | 
 |     srcs = [ | 
 |         "reflection/common.h", | 
 |         "reflection/def_type.h", | 
 |         "reflection/internal/def_builder.h", | 
 |         "reflection/internal/def_builder_test.cc", | 
 |     ], | 
 |     deps = [ | 
 |         ":descriptor_upb_proto", | 
 |         ":hash", | 
 |         ":mem", | 
 |         ":port", | 
 |         ":reflection", | 
 |         ":reflection_internal", | 
 |         "@com_google_googletest//:gtest_main", | 
 |         "@com_google_absl//absl/strings", | 
 |     ], | 
 | ) | 
 |  | 
 | # Internal C/C++ libraries ##################################################### | 
 |  | 
 | cc_binary( | 
 |     name = "libupb.so", | 
 |     srcs = ["upb_so.c"], | 
 |     copts = UPB_DEFAULT_COPTS + ["-DUPB_BUILD_API"], | 
 |     linkshared = 1, | 
 |     linkstatic = 1, | 
 |     visibility = ["//visibility:public"], | 
 |     deps = [ | 
 |         ":mem", | 
 |         ":message", | 
 |         ":message_accessors", | 
 |         ":message_split64", | 
 |         ":mini_descriptor", | 
 |         ":mini_table", | 
 |         ":port", | 
 |     ], | 
 | ) | 
 |  | 
 | # Amalgamation ################################################################# | 
 |  | 
 | # begin:github_only | 
 |  | 
 | upb_amalgamation( | 
 |     name = "gen_amalgamation", | 
 |     outs = [ | 
 |         "upb.c", | 
 |         "upb.h", | 
 |     ], | 
 |     libs = [ | 
 |         ":base", | 
 |         ":base_internal", | 
 |         ":descriptor_upb_minitable_proto", | 
 |         ":descriptor_upb_proto", | 
 |         ":eps_copy_input_stream", | 
 |         ":generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me", | 
 |         ":hash", | 
 |         ":lex", | 
 |         ":mem", | 
 |         ":mem_internal", | 
 |         ":message", | 
 |         ":message_accessors", | 
 |         ":message_internal", | 
 |         ":message_internal_types", | 
 |         ":message_tagged_ptr", | 
 |         ":message_types", | 
 |         ":message_value", | 
 |         ":mini_descriptor", | 
 |         ":mini_descriptor_internal", | 
 |         ":mini_table", | 
 |         ":mini_table_compat", | 
 |         ":mini_table_internal", | 
 |         ":port", | 
 |         ":reflection", | 
 |         ":reflection_internal", | 
 |         ":wire", | 
 |         ":wire_internal", | 
 |         ":wire_reader", | 
 |         ":wire_types", | 
 |     ], | 
 |     strip_import_prefix = ["src"], | 
 | ) | 
 |  | 
 | cc_library( | 
 |     name = "amalgamation", | 
 |     srcs = ["upb.c"], | 
 |     hdrs = ["upb.h"], | 
 |     copts = UPB_DEFAULT_COPTS, | 
 |     deps = ["@utf8_range"], | 
 | ) | 
 |  | 
 | upb_amalgamation( | 
 |     name = "gen_php_amalgamation", | 
 |     outs = [ | 
 |         "php-upb.c", | 
 |         "php-upb.h", | 
 |     ], | 
 |     libs = [ | 
 |         ":base", | 
 |         ":base_internal", | 
 |         ":descriptor_upb_minitable_proto", | 
 |         ":descriptor_upb_proto_reflection", | 
 |         ":descriptor_upb_proto", | 
 |         ":eps_copy_input_stream", | 
 |         ":generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me", | 
 |         ":hash", | 
 |         ":json", | 
 |         ":lex", | 
 |         ":mem", | 
 |         ":mem_internal", | 
 |         ":message", | 
 |         ":message_accessors", | 
 |         ":message_internal", | 
 |         ":message_internal_types", | 
 |         ":message_tagged_ptr", | 
 |         ":message_types", | 
 |         ":message_value", | 
 |         ":mini_descriptor", | 
 |         ":mini_descriptor_internal", | 
 |         ":mini_table", | 
 |         ":mini_table_internal", | 
 |         ":port", | 
 |         ":reflection", | 
 |         ":reflection_internal", | 
 |         ":wire", | 
 |         ":wire_internal", | 
 |         ":wire_reader", | 
 |         ":wire_types", | 
 |     ], | 
 |     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 = ["@utf8_range"], | 
 | ) | 
 |  | 
 | upb_amalgamation( | 
 |     name = "gen_ruby_amalgamation", | 
 |     outs = [ | 
 |         "ruby-upb.c", | 
 |         "ruby-upb.h", | 
 |     ], | 
 |     libs = [ | 
 |         ":base", | 
 |         ":base_internal", | 
 |         ":descriptor_upb_minitable_proto", | 
 |         ":descriptor_upb_proto", | 
 |         ":eps_copy_input_stream", | 
 |         ":generated_code_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me", | 
 |         ":hash", | 
 |         ":json", | 
 |         ":lex", | 
 |         ":mem", | 
 |         ":mem_internal", | 
 |         ":message", | 
 |         ":message_accessors", | 
 |         ":message_internal", | 
 |         ":message_internal_types", | 
 |         ":message_tagged_ptr", | 
 |         ":message_types", | 
 |         ":message_value", | 
 |         ":mini_descriptor", | 
 |         ":mini_descriptor_internal", | 
 |         ":mini_table", | 
 |         ":mini_table_internal", | 
 |         ":port", | 
 |         ":reflection", | 
 |         ":reflection_internal", | 
 |         ":wire", | 
 |         ":wire_internal", | 
 |         ":wire_reader", | 
 |         ":wire_types", | 
 |     ], | 
 |     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 = ["@utf8_range"], | 
 | ) | 
 |  | 
 | exports_files( | 
 |     [ | 
 |         "third_party/lunit/console.lua", | 
 |         "third_party/lunit/lunit.lua", | 
 |     ], | 
 |     visibility = ["//lua:__pkg__"], | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "source_files", | 
 |     srcs = glob( | 
 |         [ | 
 |             "**/*.c", | 
 |             "**/*.h", | 
 |             "**/*.hpp", | 
 |        ], | 
 |         exclude = [ | 
 |             "**/conformance_upb.c", | 
 |             "reflection/stage0/**/*", | 
 |         ], | 
 |     ), | 
 |     visibility = [ | 
 |         "//upb/cmake:__pkg__", | 
 |         "//python/dist:__pkg__", | 
 |     ] | 
 | ) | 
 | # end:github_only | 
 |  | 
 | # begin:google_only | 
 | # | 
 | # py_binary( | 
 | #     name = "update_check_runs", | 
 | #     srcs = ["update_check_runs.py"], | 
 | #     main = "update_check_runs.py", | 
 | #     deps = [ | 
 | #         "//third_party/py/absl:app", | 
 | #         "//third_party/py/absl/flags", | 
 | #     ], | 
 | # ) | 
 | # | 
 | # kt_native_interop_hint( | 
 | #     name = "upb_kotlin_native_hint", | 
 | #     compatible_with = ["//buildenv/target:non_prod"], | 
 | #     headers_to_exclude = glob([ | 
 | #         "**/*.hpp", | 
 | #     ]), | 
 | #     kotlin_package = "upb", | 
 | #     no_string_conversion = ["_upb_MiniTable_Build"], | 
 | #     strict_enums = [ | 
 | #         "upb_CType", | 
 | #         "upb_DecodeStatus", | 
 | #         "upb_EncodeStatus", | 
 | #         "upb_FieldType", | 
 | #         "upb_FindUnknown_Status", | 
 | #         "upb_GetExtension_Status", | 
 | #         "upb_GetExtensionAsBytes_Status", | 
 | #         "upb_Label", | 
 | #         "upb_MapInsertStatus", | 
 | #         "upb_UnknownToMessage_Status", | 
 | #         "upb_WireType", | 
 | #     ], | 
 | #     visibility = ["//upb:__subpackages__"], | 
 | # ) | 
 | # | 
 | # end:google_only |