# 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

# begin:google_only
# load(
#     "//protos/bazel:upb_cc_proto_library.bzl",
#     "upb_cc_proto_library_copts",
# )
# load(
#     "//upb/bazel:build_defs.bzl",
#     "UPB_DEFAULT_CPPOPTS",
# )
#
# package(default_applicable_licenses = ["//upb:license"])
#
# licenses(["notice"])
#
# cc_library(
#     name = "repeated_field",
#     hdrs = [
#         "repeated_field.h",
#         "repeated_field_iterator.h",
#     ],
#     copts = UPB_DEFAULT_CPPOPTS,
#     visibility = ["//visibility:public"],
#     deps = [
#         "//hpb:repeated_field",
#     ],
# )
#
# cc_library(
#     name = "protos",
#     hdrs = [
#         "protos.h",
#     ],
#     copts = UPB_DEFAULT_CPPOPTS,
#     visibility = ["//visibility:public"],
#     deps = [
#         "//hpb",
#     ],
# )
#
# # Internally used type traits.
# cc_library(
#     name = "protos_traits",
#     hdrs = [
#         "protos_traits.h",
#     ],
#     copts = UPB_DEFAULT_CPPOPTS,
#     visibility = ["//visibility:private"],
#     deps = [
#         "//hpb:protos_traits",
#     ],
# )
#
# cc_library(
#     name = "protos_internal",
#     hdrs = ["protos_internal.h"],
#     copts = UPB_DEFAULT_CPPOPTS,
#     visibility = ["//visibility:public"],
#     deps = [
#         "//hpb:protos_internal",
#     ],
# )
#
# cc_library(
#     name = "protos_extension_lock",
#     hdrs = ["protos_extension_lock.h"],
#     copts = UPB_DEFAULT_CPPOPTS,
#     visibility = ["//visibility:public"],
#     deps = [
#         "//hpb:protos_extension_lock",
#     ],
# )
#
# # Common support code for C++ generated code.
# cc_library(
#     name = "generated_protos_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me",
#     hdrs = [
#         "protos_internal.h",
#     ],
#     copts = UPB_DEFAULT_CPPOPTS,
#     visibility = ["//visibility:public"],
#     deps = [
#         "//hpb:generated_protos_support__only_for_generated_code_do_not_use__i_give_permission_to_break_me",
#     ],
# )
#
# upb_cc_proto_library_copts(
#     name = "upb_cc_proto_library_copts__for_generated_code_only_do_not_use",
#     copts = UPB_DEFAULT_CPPOPTS,
#     visibility = ["//visibility:public"],
# )
#
# cc_library(
#     name = "requires",
#     hdrs = ["requires.h"],
#     visibility = ["//visibility:public"],
# )
# end:google_only
