1# Internal Starlark definitions for Protobuf. 2 3load("@rules_cc//cc:defs.bzl", starlark_cc_proto_library = "cc_proto_library") 4load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix") 5load(":cc_proto_blacklist_test.bzl", "cc_proto_blacklist_test") 6load(":compiler_config_setting.bzl", "create_compiler_config_setting") 7 8package( 9 default_visibility = [ 10 # Public, but Protobuf only visibility. 11 "//:__subpackages__", 12 ], 13) 14 15create_compiler_config_setting( 16 name = "config_msvc", 17 value = "msvc-cl", 18) 19 20# Android NDK builds can specify different crosstool_top flags to choose which 21# STL they use for C++. We need these multiple variants to catch all of those 22# versions of crosstool_top and reliably detect Android. 23# 24# For more info on the various crosstool_tops used by NDK Bazel builds, see: 25# https://docs.bazel.build/versions/master/android-ndk.html#configuring-the-stl 26 27config_setting( 28 name = "config_android", 29 values = { 30 "crosstool_top": "//external:android/crosstool", 31 }, 32) 33 34config_setting( 35 name = "config_android-stlport", 36 values = { 37 "crosstool_top": "@androidndk//:toolchain-stlport", 38 }, 39) 40 41config_setting( 42 name = "config_android-libcpp", 43 values = { 44 "crosstool_top": "@androidndk//:toolchain-libcpp", 45 }, 46) 47 48config_setting( 49 name = "config_android-gnu-libstdcpp", 50 values = { 51 "crosstool_top": "@androidndk//:toolchain-gnu-libstdcpp", 52 }, 53) 54 55config_setting( 56 name = "config_android-default", 57 values = { 58 "crosstool_top": "@androidndk//:default_crosstool", 59 }, 60) 61 62config_setting( 63 name = "config_win32", 64 values = { 65 "cpu": "win32", 66 }, 67) 68 69config_setting( 70 name = "config_win64", 71 values = { 72 "cpu": "win64", 73 }, 74) 75 76# Internal testing: 77 78starlark_cc_proto_library( 79 name = "any_cc_proto", 80 visibility = ["//visibility:private"], 81 deps = ["//:any_proto"], 82) 83 84starlark_cc_proto_library( 85 name = "api_cc_proto", 86 visibility = ["//visibility:private"], 87 deps = ["//:api_proto"], 88) 89 90starlark_cc_proto_library( 91 name = "compiler_plugin_cc_proto", 92 visibility = ["//visibility:private"], 93 deps = ["//:compiler_plugin_proto"], 94) 95 96starlark_cc_proto_library( 97 name = "descriptor_cc_proto", 98 visibility = ["//visibility:private"], 99 deps = ["//:descriptor_proto"], 100) 101 102starlark_cc_proto_library( 103 name = "duration_cc_proto", 104 visibility = ["//visibility:private"], 105 deps = ["//:duration_proto"], 106) 107 108starlark_cc_proto_library( 109 name = "empty_cc_proto", 110 visibility = ["//visibility:private"], 111 deps = ["//:empty_proto"], 112) 113 114starlark_cc_proto_library( 115 name = "field_mask_cc_proto", 116 visibility = ["//visibility:private"], 117 deps = ["//:field_mask_proto"], 118) 119 120starlark_cc_proto_library( 121 name = "source_context_cc_proto", 122 visibility = ["//visibility:private"], 123 deps = ["//:source_context_proto"], 124) 125 126starlark_cc_proto_library( 127 name = "struct_cc_proto", 128 visibility = ["//visibility:private"], 129 deps = ["//:struct_proto"], 130) 131 132starlark_cc_proto_library( 133 name = "timestamp_cc_proto", 134 visibility = ["//visibility:private"], 135 deps = ["//:timestamp_proto"], 136) 137 138starlark_cc_proto_library( 139 name = "type_cc_proto", 140 visibility = ["//visibility:private"], 141 deps = ["//:type_proto"], 142) 143 144starlark_cc_proto_library( 145 name = "wrappers_cc_proto", 146 visibility = ["//visibility:private"], 147 deps = ["//:wrappers_proto"], 148) 149 150cc_proto_blacklist_test( 151 name = "cc_proto_blacklist_test", 152 deps = [ 153 ":any_cc_proto", 154 ":api_cc_proto", 155 ":compiler_plugin_cc_proto", 156 ":descriptor_cc_proto", 157 ":duration_cc_proto", 158 ":empty_cc_proto", 159 ":field_mask_cc_proto", 160 ":source_context_cc_proto", 161 ":struct_cc_proto", 162 ":timestamp_cc_proto", 163 ":type_cc_proto", 164 ":wrappers_cc_proto", 165 ], 166) 167 168pkg_files( 169 name = "dist_files", 170 srcs = glob(["*"]), 171 strip_prefix = strip_prefix.from_root(""), 172 visibility = ["//pkg:__pkg__"], 173) 174