xref: /aosp_15_r20/external/cronet/third_party/protobuf/build_defs/BUILD.bazel (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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