| # Internal Starlark definitions for Protobuf. | 
 |  | 
 | load("@bazel_skylib//lib:selects.bzl", "selects") | 
 | load("@rules_cc//cc:defs.bzl", starlark_cc_proto_library = "cc_proto_library") | 
 | load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") | 
 | load(":cc_proto_blacklist_test.bzl", "cc_proto_blacklist_test") | 
 | load(":compiler_config_setting.bzl", "create_compiler_config_setting") | 
 |  | 
 | package( | 
 |     default_visibility = [ | 
 |         # Public, but Protobuf only visibility. | 
 |         "//:__subpackages__", | 
 |     ], | 
 | ) | 
 |  | 
 | create_compiler_config_setting( | 
 |     name = "config_msvc", | 
 |     value = "msvc-cl", | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "aarch64", | 
 |     values = {"cpu": "linux-aarch_64"}, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "x86_64", | 
 |     values = {"cpu": "linux-x86_64"}, | 
 | ) | 
 |  | 
 | # Android NDK builds can specify different crosstool_top flags to choose which | 
 | # STL they use for C++. We need these multiple variants to catch all of those | 
 | # versions of crosstool_top and reliably detect Android. | 
 | # | 
 | # For more info on the various crosstool_tops used by NDK Bazel builds, see: | 
 | # https://docs.bazel.build/versions/master/android-ndk.html#configuring-the-stl | 
 |  | 
 | config_setting( | 
 |     name = "config_android", | 
 |     values = { | 
 |         "crosstool_top": "//external:android/crosstool", | 
 |     }, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "config_android-stlport", | 
 |     values = { | 
 |         "crosstool_top": "@androidndk//:toolchain-stlport", | 
 |     }, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "config_android-libcpp", | 
 |     values = { | 
 |         "crosstool_top": "@androidndk//:toolchain-libcpp", | 
 |     }, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "config_android-gnu-libstdcpp", | 
 |     values = { | 
 |         "crosstool_top": "@androidndk//:toolchain-gnu-libstdcpp", | 
 |     }, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "config_android-default", | 
 |     values = { | 
 |         "crosstool_top": "@androidndk//:default_crosstool", | 
 |     }, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "config_win32", | 
 |     values = { | 
 |         "cpu": "win32", | 
 |     }, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "config_win64", | 
 |     values = { | 
 |         "cpu": "win64", | 
 |     }, | 
 | ) | 
 |  | 
 | selects.config_setting_group( | 
 |     name = "config_win", | 
 |     match_any = [ | 
 |         ":config_win32", | 
 |         ":config_win64", | 
 |     ], | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "config_osx_aarch64", | 
 |     values = {"cpu": "osx-aarch_64"}, | 
 | ) | 
 |  | 
 | config_setting( | 
 |     name = "config_osx_x86_64", | 
 |     values = {"cpu": "osx-x86_64"}, | 
 | ) | 
 |  | 
 | selects.config_setting_group( | 
 |     name = "config_osx", | 
 |     match_any = [ | 
 |         ":config_osx_aarch64", | 
 |         ":config_osx_x86_64", | 
 |     ], | 
 | ) | 
 |  | 
 | # Internal testing: | 
 |  | 
 | starlark_cc_proto_library( | 
 |     name = "any_cc_proto", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//:any_proto"], | 
 | ) | 
 |  | 
 | starlark_cc_proto_library( | 
 |     name = "api_cc_proto", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//:api_proto"], | 
 | ) | 
 |  | 
 | starlark_cc_proto_library( | 
 |     name = "compiler_plugin_cc_proto", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//:compiler_plugin_proto"], | 
 | ) | 
 |  | 
 | starlark_cc_proto_library( | 
 |     name = "descriptor_cc_proto", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//:descriptor_proto"], | 
 | ) | 
 |  | 
 | starlark_cc_proto_library( | 
 |     name = "duration_cc_proto", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//:duration_proto"], | 
 | ) | 
 |  | 
 | starlark_cc_proto_library( | 
 |     name = "empty_cc_proto", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//:empty_proto"], | 
 | ) | 
 |  | 
 | starlark_cc_proto_library( | 
 |     name = "field_mask_cc_proto", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//:field_mask_proto"], | 
 | ) | 
 |  | 
 | starlark_cc_proto_library( | 
 |     name = "source_context_cc_proto", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//:source_context_proto"], | 
 | ) | 
 |  | 
 | starlark_cc_proto_library( | 
 |     name = "struct_cc_proto", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//:struct_proto"], | 
 | ) | 
 |  | 
 | starlark_cc_proto_library( | 
 |     name = "timestamp_cc_proto", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//:timestamp_proto"], | 
 | ) | 
 |  | 
 | starlark_cc_proto_library( | 
 |     name = "type_cc_proto", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//:type_proto"], | 
 | ) | 
 |  | 
 | starlark_cc_proto_library( | 
 |     name = "wrappers_cc_proto", | 
 |     visibility = ["//visibility:private"], | 
 |     deps = ["//:wrappers_proto"], | 
 | ) | 
 |  | 
 | cc_proto_blacklist_test( | 
 |     name = "cc_proto_blacklist_test", | 
 |     deps = [ | 
 |         ":any_cc_proto", | 
 |         ":api_cc_proto", | 
 |         ":compiler_plugin_cc_proto", | 
 |         ":descriptor_cc_proto", | 
 |         ":duration_cc_proto", | 
 |         ":empty_cc_proto", | 
 |         ":field_mask_cc_proto", | 
 |         ":source_context_cc_proto", | 
 |         ":struct_cc_proto", | 
 |         ":timestamp_cc_proto", | 
 |         ":type_cc_proto", | 
 |         ":wrappers_cc_proto", | 
 |     ], | 
 | ) | 
 |  | 
 | pkg_files( | 
 |     name = "dist_files", | 
 |     srcs = glob(["*"]), | 
 |     strip_prefix = strip_prefix.from_root(""), | 
 |     visibility = ["//pkg:__pkg__"], | 
 | ) |