xref: /aosp_15_r20/external/cronet/third_party/protobuf/BUILD.bazel (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker# Bazel (https://bazel.build/) BUILD file for Protobuf.
2*6777b538SAndroid Build Coastguard Worker
3*6777b538SAndroid Build Coastguard Workerload("@bazel_skylib//rules:common_settings.bzl", "string_flag")
4*6777b538SAndroid Build Coastguard Workerload("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test")
5*6777b538SAndroid Build Coastguard Workerload("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
6*6777b538SAndroid Build Coastguard Workerload("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library")
7*6777b538SAndroid Build Coastguard Workerload("@rules_python//python:defs.bzl", "py_library")
8*6777b538SAndroid Build Coastguard Workerload("@rules_java//java:defs.bzl", "java_binary", "java_lite_proto_library", "java_proto_library")
9*6777b538SAndroid Build Coastguard Workerload("//build_defs:cpp_opts.bzl", "COPTS", "LINK_OPTS", "PROTOC_LINK_OPTS")
10*6777b538SAndroid Build Coastguard Workerload(
11*6777b538SAndroid Build Coastguard Worker    ":protobuf.bzl",
12*6777b538SAndroid Build Coastguard Worker    "adapt_proto_library",
13*6777b538SAndroid Build Coastguard Worker    "cc_proto_library",
14*6777b538SAndroid Build Coastguard Worker    "internal_copied_filegroup",
15*6777b538SAndroid Build Coastguard Worker    "internal_protobuf_py_tests",
16*6777b538SAndroid Build Coastguard Worker    "py_proto_library",
17*6777b538SAndroid Build Coastguard Worker)
18*6777b538SAndroid Build Coastguard Worker
19*6777b538SAndroid Build Coastguard Workerlicenses(["notice"])
20*6777b538SAndroid Build Coastguard Worker
21*6777b538SAndroid Build Coastguard Workerexports_files(["LICENSE"])
22*6777b538SAndroid Build Coastguard Worker
23*6777b538SAndroid Build Coastguard Worker################################################################################
24*6777b538SAndroid Build Coastguard Worker# Protobuf Runtime Library
25*6777b538SAndroid Build Coastguard Worker################################################################################
26*6777b538SAndroid Build Coastguard Worker
27*6777b538SAndroid Build Coastguard Workercc_library(
28*6777b538SAndroid Build Coastguard Worker    name = "protobuf_lite",
29*6777b538SAndroid Build Coastguard Worker    srcs = [
30*6777b538SAndroid Build Coastguard Worker        # AUTOGEN(protobuf_lite_srcs)
31*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/any_lite.cc",
32*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/arena.cc",
33*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/arenastring.cc",
34*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/arenaz_sampler.cc",
35*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/extension_set.cc",
36*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/generated_enum_util.cc",
37*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/generated_message_tctable_lite.cc",
38*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/generated_message_util.cc",
39*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/implicit_weak_message.cc",
40*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/inlined_string_field.cc",
41*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/coded_stream.cc",
42*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/io_win32.cc",
43*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/strtod.cc",
44*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/zero_copy_stream.cc",
45*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/zero_copy_stream_impl.cc",
46*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
47*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/map.cc",
48*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/message_lite.cc",
49*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/parse_context.cc",
50*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/repeated_field.cc",
51*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/repeated_ptr_field.cc",
52*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/bytestream.cc",
53*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/common.cc",
54*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/int128.cc",
55*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/status.cc",
56*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/statusor.cc",
57*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/stringpiece.cc",
58*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/stringprintf.cc",
59*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/structurally_valid.cc",
60*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/strutil.cc",
61*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/time.cc",
62*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/wire_format_lite.cc",
63*6777b538SAndroid Build Coastguard Worker    ],
64*6777b538SAndroid Build Coastguard Worker    hdrs = glob([
65*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/**/*.h",
66*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/**/*.inc",
67*6777b538SAndroid Build Coastguard Worker    ]),
68*6777b538SAndroid Build Coastguard Worker    copts = COPTS,
69*6777b538SAndroid Build Coastguard Worker    includes = ["src/"],
70*6777b538SAndroid Build Coastguard Worker    linkopts = LINK_OPTS,
71*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
72*6777b538SAndroid Build Coastguard Worker)
73*6777b538SAndroid Build Coastguard Worker
74*6777b538SAndroid Build Coastguard Workercc_library(
75*6777b538SAndroid Build Coastguard Worker    name = "protobuf",
76*6777b538SAndroid Build Coastguard Worker    srcs = [
77*6777b538SAndroid Build Coastguard Worker        # AUTOGEN(protobuf_srcs)
78*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/any.cc",
79*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/any.pb.cc",
80*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/api.pb.cc",
81*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/importer.cc",
82*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/parser.cc",
83*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/descriptor.cc",
84*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/descriptor.pb.cc",
85*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/descriptor_database.cc",
86*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/duration.pb.cc",
87*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/dynamic_message.cc",
88*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/empty.pb.cc",
89*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/extension_set_heavy.cc",
90*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/field_mask.pb.cc",
91*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/generated_message_bases.cc",
92*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/generated_message_reflection.cc",
93*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/generated_message_tctable_full.cc",
94*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/gzip_stream.cc",
95*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/printer.cc",
96*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/tokenizer.cc",
97*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/map_field.cc",
98*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/message.cc",
99*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/reflection_ops.cc",
100*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/service.cc",
101*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/source_context.pb.cc",
102*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/struct.pb.cc",
103*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/substitute.cc",
104*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/text_format.cc",
105*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/timestamp.pb.cc",
106*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/type.pb.cc",
107*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unknown_field_set.cc",
108*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/delimited_message_util.cc",
109*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/field_comparator.cc",
110*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/field_mask_util.cc",
111*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/datapiece.cc",
112*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/default_value_objectwriter.cc",
113*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/error_listener.cc",
114*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/field_mask_utility.cc",
115*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/json_escaping.cc",
116*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/json_objectwriter.cc",
117*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/json_stream_parser.cc",
118*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/object_writer.cc",
119*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/proto_writer.cc",
120*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/protostream_objectsource.cc",
121*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/protostream_objectwriter.cc",
122*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/type_info.cc",
123*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/utility.cc",
124*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/json_util.cc",
125*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/message_differencer.cc",
126*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/time_util.cc",
127*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/type_resolver_util.cc",
128*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/wire_format.cc",
129*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/wrappers.pb.cc",
130*6777b538SAndroid Build Coastguard Worker    ],
131*6777b538SAndroid Build Coastguard Worker    hdrs = glob([
132*6777b538SAndroid Build Coastguard Worker        "src/**/*.h",
133*6777b538SAndroid Build Coastguard Worker        "src/**/*.inc",
134*6777b538SAndroid Build Coastguard Worker    ]),
135*6777b538SAndroid Build Coastguard Worker    copts = COPTS,
136*6777b538SAndroid Build Coastguard Worker    includes = ["src/"],
137*6777b538SAndroid Build Coastguard Worker    linkopts = LINK_OPTS,
138*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
139*6777b538SAndroid Build Coastguard Worker    deps = [":protobuf_lite"] + select({
140*6777b538SAndroid Build Coastguard Worker        "//build_defs:config_msvc": [],
141*6777b538SAndroid Build Coastguard Worker        "//conditions:default": ["@zlib//:zlib"],
142*6777b538SAndroid Build Coastguard Worker    }),
143*6777b538SAndroid Build Coastguard Worker)
144*6777b538SAndroid Build Coastguard Worker
145*6777b538SAndroid Build Coastguard Worker# This provides just the header files for use in projects that need to build
146*6777b538SAndroid Build Coastguard Worker# shared libraries for dynamic loading. This target is available until Bazel
147*6777b538SAndroid Build Coastguard Worker# adds native support for such use cases.
148*6777b538SAndroid Build Coastguard Worker# TODO(keveman): Remove this target once the support gets added to Bazel.
149*6777b538SAndroid Build Coastguard Workercc_library(
150*6777b538SAndroid Build Coastguard Worker    name = "protobuf_headers",
151*6777b538SAndroid Build Coastguard Worker    hdrs = glob([
152*6777b538SAndroid Build Coastguard Worker        "src/**/*.h",
153*6777b538SAndroid Build Coastguard Worker        "src/**/*.inc",
154*6777b538SAndroid Build Coastguard Worker    ]),
155*6777b538SAndroid Build Coastguard Worker    includes = ["src/"],
156*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
157*6777b538SAndroid Build Coastguard Worker)
158*6777b538SAndroid Build Coastguard Worker
159*6777b538SAndroid Build Coastguard Worker# DEPRECATED: Prefer :well_known_type_protos for the Well-Known Types
160*6777b538SAndroid Build Coastguard Worker# (https://developers.google.com/protocol-buffers/docs/reference/google.protobuf)
161*6777b538SAndroid Build Coastguard Worker# or :descriptor_proto(_srcs) for descriptor.proto (source), or
162*6777b538SAndroid Build Coastguard Worker# :compiler_plugin_proto for compiler/plugin.proto.
163*6777b538SAndroid Build Coastguard Workerfilegroup(
164*6777b538SAndroid Build Coastguard Worker    name = "well_known_protos",
165*6777b538SAndroid Build Coastguard Worker    srcs = [
166*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/plugin.proto",
167*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/descriptor.proto",
168*6777b538SAndroid Build Coastguard Worker        ":well_known_type_protos",
169*6777b538SAndroid Build Coastguard Worker    ],
170*6777b538SAndroid Build Coastguard Worker    deprecation = "Prefer :well_known_type_protos instead.",
171*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
172*6777b538SAndroid Build Coastguard Worker)
173*6777b538SAndroid Build Coastguard Worker
174*6777b538SAndroid Build Coastguard Workerfilegroup(
175*6777b538SAndroid Build Coastguard Worker    name = "well_known_type_protos",
176*6777b538SAndroid Build Coastguard Worker    srcs = [
177*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/any.proto",
178*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/api.proto",
179*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/duration.proto",
180*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/empty.proto",
181*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/field_mask.proto",
182*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/source_context.proto",
183*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/struct.proto",
184*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/timestamp.proto",
185*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/type.proto",
186*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/wrappers.proto",
187*6777b538SAndroid Build Coastguard Worker    ],
188*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
189*6777b538SAndroid Build Coastguard Worker)
190*6777b538SAndroid Build Coastguard Worker
191*6777b538SAndroid Build Coastguard Workerfilegroup(
192*6777b538SAndroid Build Coastguard Worker    name = "built_in_runtime_protos",
193*6777b538SAndroid Build Coastguard Worker    srcs = [
194*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/plugin.proto",
195*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/descriptor.proto",
196*6777b538SAndroid Build Coastguard Worker    ],
197*6777b538SAndroid Build Coastguard Worker    visibility = ["//:__subpackages__"],
198*6777b538SAndroid Build Coastguard Worker)
199*6777b538SAndroid Build Coastguard Worker
200*6777b538SAndroid Build Coastguard Workerexports_files(
201*6777b538SAndroid Build Coastguard Worker    srcs = [
202*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/any.proto",
203*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/api.proto",
204*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/plugin.proto",
205*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/descriptor.proto",
206*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/duration.proto",
207*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/empty.proto",
208*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/field_mask.proto",
209*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/source_context.proto",
210*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/struct.proto",
211*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/timestamp.proto",
212*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/type.proto",
213*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/wrappers.proto",
214*6777b538SAndroid Build Coastguard Worker    ],
215*6777b538SAndroid Build Coastguard Worker    visibility = ["//pkg:__pkg__"],
216*6777b538SAndroid Build Coastguard Worker)
217*6777b538SAndroid Build Coastguard Worker
218*6777b538SAndroid Build Coastguard Workeralias(
219*6777b538SAndroid Build Coastguard Worker    name = "lite_well_known_protos",
220*6777b538SAndroid Build Coastguard Worker    actual = ":well_known_type_protos",
221*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
222*6777b538SAndroid Build Coastguard Worker)
223*6777b538SAndroid Build Coastguard Worker
224*6777b538SAndroid Build Coastguard Workeradapt_proto_library(
225*6777b538SAndroid Build Coastguard Worker    name = "cc_wkt_protos_genproto",
226*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
227*6777b538SAndroid Build Coastguard Worker    deps = [
228*6777b538SAndroid Build Coastguard Worker        "//:any_proto",
229*6777b538SAndroid Build Coastguard Worker        "//:api_proto",
230*6777b538SAndroid Build Coastguard Worker        "//:compiler_plugin_proto",
231*6777b538SAndroid Build Coastguard Worker        "//:descriptor_proto",
232*6777b538SAndroid Build Coastguard Worker        "//:duration_proto",
233*6777b538SAndroid Build Coastguard Worker        "//:empty_proto",
234*6777b538SAndroid Build Coastguard Worker        "//:field_mask_proto",
235*6777b538SAndroid Build Coastguard Worker        "//:source_context_proto",
236*6777b538SAndroid Build Coastguard Worker        "//:struct_proto",
237*6777b538SAndroid Build Coastguard Worker        "//:timestamp_proto",
238*6777b538SAndroid Build Coastguard Worker        "//:type_proto",
239*6777b538SAndroid Build Coastguard Worker        "//:wrappers_proto",
240*6777b538SAndroid Build Coastguard Worker    ],
241*6777b538SAndroid Build Coastguard Worker)
242*6777b538SAndroid Build Coastguard Worker
243*6777b538SAndroid Build Coastguard Workercc_library(
244*6777b538SAndroid Build Coastguard Worker    name = "cc_wkt_protos",
245*6777b538SAndroid Build Coastguard Worker    deprecation = "Only for backward compatibility. Do not use.",
246*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
247*6777b538SAndroid Build Coastguard Worker)
248*6777b538SAndroid Build Coastguard Worker
249*6777b538SAndroid Build Coastguard Worker################################################################################
250*6777b538SAndroid Build Coastguard Worker# Well Known Types Proto Library Rules
251*6777b538SAndroid Build Coastguard Worker#
252*6777b538SAndroid Build Coastguard Worker# https://developers.google.com/protocol-buffers/docs/reference/google.protobuf
253*6777b538SAndroid Build Coastguard Worker################################################################################
254*6777b538SAndroid Build Coastguard Worker# These proto_library rules can be used with one of the language specific proto
255*6777b538SAndroid Build Coastguard Worker# library rules i.e. java_proto_library:
256*6777b538SAndroid Build Coastguard Worker#
257*6777b538SAndroid Build Coastguard Worker# java_proto_library(
258*6777b538SAndroid Build Coastguard Worker#   name = "any_java_proto",
259*6777b538SAndroid Build Coastguard Worker#   deps = ["@com_google_protobuf//:any_proto],
260*6777b538SAndroid Build Coastguard Worker# )
261*6777b538SAndroid Build Coastguard Worker################################################################################
262*6777b538SAndroid Build Coastguard Worker
263*6777b538SAndroid Build Coastguard Workerproto_library(
264*6777b538SAndroid Build Coastguard Worker    name = "any_proto",
265*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/any.proto"],
266*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
267*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
268*6777b538SAndroid Build Coastguard Worker)
269*6777b538SAndroid Build Coastguard Worker
270*6777b538SAndroid Build Coastguard Workerproto_library(
271*6777b538SAndroid Build Coastguard Worker    name = "api_proto",
272*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/api.proto"],
273*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
274*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
275*6777b538SAndroid Build Coastguard Worker    deps = [
276*6777b538SAndroid Build Coastguard Worker        "//:source_context_proto",
277*6777b538SAndroid Build Coastguard Worker        "//:type_proto",
278*6777b538SAndroid Build Coastguard Worker    ],
279*6777b538SAndroid Build Coastguard Worker)
280*6777b538SAndroid Build Coastguard Worker
281*6777b538SAndroid Build Coastguard Workerproto_library(
282*6777b538SAndroid Build Coastguard Worker    name = "duration_proto",
283*6777b538SAndroid Build Coastguard Worker    srcs = ["//:src/google/protobuf/duration.proto"],
284*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
285*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
286*6777b538SAndroid Build Coastguard Worker)
287*6777b538SAndroid Build Coastguard Worker
288*6777b538SAndroid Build Coastguard Workerproto_library(
289*6777b538SAndroid Build Coastguard Worker    name = "empty_proto",
290*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/empty.proto"],
291*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
292*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
293*6777b538SAndroid Build Coastguard Worker)
294*6777b538SAndroid Build Coastguard Worker
295*6777b538SAndroid Build Coastguard Workerproto_library(
296*6777b538SAndroid Build Coastguard Worker    name = "field_mask_proto",
297*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/field_mask.proto"],
298*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
299*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
300*6777b538SAndroid Build Coastguard Worker)
301*6777b538SAndroid Build Coastguard Worker
302*6777b538SAndroid Build Coastguard Workerproto_library(
303*6777b538SAndroid Build Coastguard Worker    name = "source_context_proto",
304*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/source_context.proto"],
305*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
306*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
307*6777b538SAndroid Build Coastguard Worker)
308*6777b538SAndroid Build Coastguard Worker
309*6777b538SAndroid Build Coastguard Workerproto_library(
310*6777b538SAndroid Build Coastguard Worker    name = "struct_proto",
311*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/struct.proto"],
312*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
313*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
314*6777b538SAndroid Build Coastguard Worker)
315*6777b538SAndroid Build Coastguard Worker
316*6777b538SAndroid Build Coastguard Workerproto_library(
317*6777b538SAndroid Build Coastguard Worker    name = "timestamp_proto",
318*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/timestamp.proto"],
319*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
320*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
321*6777b538SAndroid Build Coastguard Worker)
322*6777b538SAndroid Build Coastguard Worker
323*6777b538SAndroid Build Coastguard Workerproto_library(
324*6777b538SAndroid Build Coastguard Worker    name = "type_proto",
325*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/type.proto"],
326*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
327*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
328*6777b538SAndroid Build Coastguard Worker    deps = [
329*6777b538SAndroid Build Coastguard Worker        "//:any_proto",
330*6777b538SAndroid Build Coastguard Worker        "//:source_context_proto",
331*6777b538SAndroid Build Coastguard Worker    ],
332*6777b538SAndroid Build Coastguard Worker)
333*6777b538SAndroid Build Coastguard Worker
334*6777b538SAndroid Build Coastguard Workerproto_library(
335*6777b538SAndroid Build Coastguard Worker    name = "wrappers_proto",
336*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/wrappers.proto"],
337*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
338*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
339*6777b538SAndroid Build Coastguard Worker)
340*6777b538SAndroid Build Coastguard Worker
341*6777b538SAndroid Build Coastguard Worker# Built-in runtime types
342*6777b538SAndroid Build Coastguard Worker
343*6777b538SAndroid Build Coastguard Workerproto_library(
344*6777b538SAndroid Build Coastguard Worker    name = "compiler_plugin_proto",
345*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/compiler/plugin.proto"],
346*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
347*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
348*6777b538SAndroid Build Coastguard Worker    deps = ["//:descriptor_proto"],
349*6777b538SAndroid Build Coastguard Worker)
350*6777b538SAndroid Build Coastguard Worker
351*6777b538SAndroid Build Coastguard Workerproto_library(
352*6777b538SAndroid Build Coastguard Worker    name = "descriptor_proto",
353*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/descriptor.proto"],
354*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
355*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
356*6777b538SAndroid Build Coastguard Worker)
357*6777b538SAndroid Build Coastguard Worker
358*6777b538SAndroid Build Coastguard Worker################################################################################
359*6777b538SAndroid Build Coastguard Worker# Protocol Buffers Compiler
360*6777b538SAndroid Build Coastguard Worker################################################################################
361*6777b538SAndroid Build Coastguard Worker
362*6777b538SAndroid Build Coastguard Workercc_library(
363*6777b538SAndroid Build Coastguard Worker    name = "protoc_lib",
364*6777b538SAndroid Build Coastguard Worker    srcs = [
365*6777b538SAndroid Build Coastguard Worker        # AUTOGEN(protoc_lib_srcs)
366*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/code_generator.cc",
367*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/command_line_interface.cc",
368*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/enum.cc",
369*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/enum_field.cc",
370*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/extension.cc",
371*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/field.cc",
372*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/file.cc",
373*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/generator.cc",
374*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/helpers.cc",
375*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/map_field.cc",
376*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/message.cc",
377*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/message_field.cc",
378*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/padding_optimizer.cc",
379*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/parse_function_generator.cc",
380*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/primitive_field.cc",
381*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/service.cc",
382*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/string_field.cc",
383*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_doc_comment.cc",
384*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_enum.cc",
385*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_enum_field.cc",
386*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_field_base.cc",
387*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_generator.cc",
388*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_helpers.cc",
389*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_map_field.cc",
390*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_message.cc",
391*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_message_field.cc",
392*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
393*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_reflection_class.cc",
394*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
395*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
396*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
397*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc",
398*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
399*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/context.cc",
400*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/doc_comment.cc",
401*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/enum.cc",
402*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/enum_field.cc",
403*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/enum_field_lite.cc",
404*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/enum_lite.cc",
405*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/extension.cc",
406*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/extension_lite.cc",
407*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/field.cc",
408*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/file.cc",
409*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/generator.cc",
410*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/generator_factory.cc",
411*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/helpers.cc",
412*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/kotlin_generator.cc",
413*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/map_field.cc",
414*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/map_field_lite.cc",
415*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/message.cc",
416*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/message_builder.cc",
417*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/message_builder_lite.cc",
418*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/message_field.cc",
419*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/message_field_lite.cc",
420*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/message_lite.cc",
421*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/name_resolver.cc",
422*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/primitive_field.cc",
423*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/primitive_field_lite.cc",
424*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/service.cc",
425*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/shared_code_generator.cc",
426*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/string_field.cc",
427*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/string_field_lite.cc",
428*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_enum.cc",
429*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc",
430*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_extension.cc",
431*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_field.cc",
432*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_file.cc",
433*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
434*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
435*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
436*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_message.cc",
437*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
438*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
439*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
440*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/php/php_generator.cc",
441*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/plugin.cc",
442*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/plugin.pb.cc",
443*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/python/generator.cc",
444*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/python/helpers.cc",
445*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/python/pyi_generator.cc",
446*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/ruby/ruby_generator.cc",
447*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/subprocess.cc",
448*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/zip_writer.cc",
449*6777b538SAndroid Build Coastguard Worker    ],
450*6777b538SAndroid Build Coastguard Worker    copts = COPTS,
451*6777b538SAndroid Build Coastguard Worker    includes = ["src/"],
452*6777b538SAndroid Build Coastguard Worker    linkopts = LINK_OPTS,
453*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
454*6777b538SAndroid Build Coastguard Worker    deps = [":protobuf"],
455*6777b538SAndroid Build Coastguard Worker)
456*6777b538SAndroid Build Coastguard Worker
457*6777b538SAndroid Build Coastguard Workercc_binary(
458*6777b538SAndroid Build Coastguard Worker    name = "protoc",
459*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/compiler/main.cc"],
460*6777b538SAndroid Build Coastguard Worker    linkopts = LINK_OPTS + PROTOC_LINK_OPTS,
461*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
462*6777b538SAndroid Build Coastguard Worker    deps = [":protoc_lib"],
463*6777b538SAndroid Build Coastguard Worker)
464*6777b538SAndroid Build Coastguard Worker
465*6777b538SAndroid Build Coastguard Worker################################################################################
466*6777b538SAndroid Build Coastguard Worker# Tests
467*6777b538SAndroid Build Coastguard Worker################################################################################
468*6777b538SAndroid Build Coastguard Worker
469*6777b538SAndroid Build Coastguard Workerfilegroup(
470*6777b538SAndroid Build Coastguard Worker    name = "testdata",
471*6777b538SAndroid Build Coastguard Worker    srcs = glob(["src/google/protobuf/testdata/**/*"]),
472*6777b538SAndroid Build Coastguard Worker    visibility = [
473*6777b538SAndroid Build Coastguard Worker        "//:__subpackages__",
474*6777b538SAndroid Build Coastguard Worker        "@upb//:__subpackages__",
475*6777b538SAndroid Build Coastguard Worker    ],
476*6777b538SAndroid Build Coastguard Worker)
477*6777b538SAndroid Build Coastguard Worker
478*6777b538SAndroid Build Coastguard WorkerRELATIVE_LITE_TEST_PROTOS = [
479*6777b538SAndroid Build Coastguard Worker    # AUTOGEN(lite_test_protos)
480*6777b538SAndroid Build Coastguard Worker    "google/protobuf/map_lite_unittest.proto",
481*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_import_lite.proto",
482*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_import_public_lite.proto",
483*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_lite.proto",
484*6777b538SAndroid Build Coastguard Worker]
485*6777b538SAndroid Build Coastguard Worker
486*6777b538SAndroid Build Coastguard WorkerLITE_TEST_PROTOS = ["src/" + s for s in RELATIVE_LITE_TEST_PROTOS]
487*6777b538SAndroid Build Coastguard Worker
488*6777b538SAndroid Build Coastguard WorkerRELATIVE_TEST_PROTOS = [
489*6777b538SAndroid Build Coastguard Worker    # AUTOGEN(test_protos)
490*6777b538SAndroid Build Coastguard Worker    "google/protobuf/any_test.proto",
491*6777b538SAndroid Build Coastguard Worker    "google/protobuf/compiler/cpp/test_bad_identifiers.proto",
492*6777b538SAndroid Build Coastguard Worker    "google/protobuf/compiler/cpp/test_large_enum_value.proto",
493*6777b538SAndroid Build Coastguard Worker    "google/protobuf/map_proto2_unittest.proto",
494*6777b538SAndroid Build Coastguard Worker    "google/protobuf/map_unittest.proto",
495*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest.proto",
496*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_arena.proto",
497*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_custom_options.proto",
498*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_drop_unknown_fields.proto",
499*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_embed_optimize_for.proto",
500*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_empty.proto",
501*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_enormous_descriptor.proto",
502*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_import.proto",
503*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_import_public.proto",
504*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_lazy_dependencies.proto",
505*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_lazy_dependencies_custom_option.proto",
506*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_lazy_dependencies_enum.proto",
507*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_lite_imports_nonlite.proto",
508*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_mset.proto",
509*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_mset_wire_format.proto",
510*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_no_field_presence.proto",
511*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_no_generic_services.proto",
512*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_optimize_for.proto",
513*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_preserve_unknown_enum.proto",
514*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_preserve_unknown_enum2.proto",
515*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_proto3.proto",
516*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_proto3_arena.proto",
517*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_proto3_arena_lite.proto",
518*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_proto3_lite.proto",
519*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_proto3_optional.proto",
520*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_well_known_types.proto",
521*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/internal/testdata/anys.proto",
522*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/internal/testdata/books.proto",
523*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/internal/testdata/default_value.proto",
524*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/internal/testdata/default_value_test.proto",
525*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/internal/testdata/field_mask.proto",
526*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/internal/testdata/maps.proto",
527*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/internal/testdata/oneofs.proto",
528*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/internal/testdata/proto3.proto",
529*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/internal/testdata/struct.proto",
530*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/internal/testdata/timestamp_duration.proto",
531*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/internal/testdata/wrappers.proto",
532*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/json_format.proto",
533*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/json_format_proto3.proto",
534*6777b538SAndroid Build Coastguard Worker    "google/protobuf/util/message_differencer_unittest.proto",
535*6777b538SAndroid Build Coastguard Worker]
536*6777b538SAndroid Build Coastguard Worker
537*6777b538SAndroid Build Coastguard WorkerTEST_PROTOS = ["src/" + s for s in RELATIVE_TEST_PROTOS]
538*6777b538SAndroid Build Coastguard Worker
539*6777b538SAndroid Build Coastguard WorkerGENERIC_RELATIVE_TEST_PROTOS = [
540*6777b538SAndroid Build Coastguard Worker    "google/protobuf/map_proto2_unittest.proto",
541*6777b538SAndroid Build Coastguard Worker    "google/protobuf/map_unittest.proto",
542*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest.proto",
543*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_arena.proto",
544*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_custom_options.proto",
545*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_drop_unknown_fields.proto",
546*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_embed_optimize_for.proto",
547*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_empty.proto",
548*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_enormous_descriptor.proto",
549*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_import.proto",
550*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_import_public.proto",
551*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_lazy_dependencies.proto",
552*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_lazy_dependencies_custom_option.proto",
553*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_lazy_dependencies_enum.proto",
554*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_lite_imports_nonlite.proto",
555*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_mset.proto",
556*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_mset_wire_format.proto",
557*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_no_field_presence.proto",
558*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_no_generic_services.proto",
559*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_optimize_for.proto",
560*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_preserve_unknown_enum.proto",
561*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_preserve_unknown_enum2.proto",
562*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_proto3.proto",
563*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_proto3_arena.proto",
564*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_proto3_arena_lite.proto",
565*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_proto3_lite.proto",
566*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_proto3_optional.proto",
567*6777b538SAndroid Build Coastguard Worker    "google/protobuf/unittest_well_known_types.proto",
568*6777b538SAndroid Build Coastguard Worker]
569*6777b538SAndroid Build Coastguard Worker
570*6777b538SAndroid Build Coastguard WorkerGENERIC_TEST_PROTOS = ["src/" + s for s in GENERIC_RELATIVE_TEST_PROTOS]
571*6777b538SAndroid Build Coastguard Worker
572*6777b538SAndroid Build Coastguard Workerproto_library(
573*6777b538SAndroid Build Coastguard Worker    name = "generic_test_protos",
574*6777b538SAndroid Build Coastguard Worker    srcs = LITE_TEST_PROTOS + GENERIC_TEST_PROTOS,
575*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
576*6777b538SAndroid Build Coastguard Worker    visibility = ["//:__subpackages__"],
577*6777b538SAndroid Build Coastguard Worker    deps = [
578*6777b538SAndroid Build Coastguard Worker        "//:any_proto",
579*6777b538SAndroid Build Coastguard Worker        "//:api_proto",
580*6777b538SAndroid Build Coastguard Worker        "//:descriptor_proto",
581*6777b538SAndroid Build Coastguard Worker        "//:duration_proto",
582*6777b538SAndroid Build Coastguard Worker        "//:empty_proto",
583*6777b538SAndroid Build Coastguard Worker        "//:field_mask_proto",
584*6777b538SAndroid Build Coastguard Worker        "//:source_context_proto",
585*6777b538SAndroid Build Coastguard Worker        "//:struct_proto",
586*6777b538SAndroid Build Coastguard Worker        "//:timestamp_proto",
587*6777b538SAndroid Build Coastguard Worker        "//:type_proto",
588*6777b538SAndroid Build Coastguard Worker        "//:wrappers_proto",
589*6777b538SAndroid Build Coastguard Worker    ],
590*6777b538SAndroid Build Coastguard Worker)
591*6777b538SAndroid Build Coastguard Worker
592*6777b538SAndroid Build Coastguard Workercc_proto_library(
593*6777b538SAndroid Build Coastguard Worker    name = "cc_test_protos",
594*6777b538SAndroid Build Coastguard Worker    srcs = LITE_TEST_PROTOS + TEST_PROTOS,
595*6777b538SAndroid Build Coastguard Worker    include = "src",
596*6777b538SAndroid Build Coastguard Worker    default_runtime = ":protobuf",
597*6777b538SAndroid Build Coastguard Worker    protoc = ":protoc",
598*6777b538SAndroid Build Coastguard Worker    deps = [":cc_wkt_protos"],
599*6777b538SAndroid Build Coastguard Worker)
600*6777b538SAndroid Build Coastguard Worker
601*6777b538SAndroid Build Coastguard WorkerCOMMON_TEST_SRCS = [
602*6777b538SAndroid Build Coastguard Worker    # AUTOGEN(common_test_srcs)
603*6777b538SAndroid Build Coastguard Worker    "src/google/protobuf/arena_test_util.cc",
604*6777b538SAndroid Build Coastguard Worker    "src/google/protobuf/map_lite_test_util.cc",
605*6777b538SAndroid Build Coastguard Worker    "src/google/protobuf/test_util_lite.cc",
606*6777b538SAndroid Build Coastguard Worker    "src/google/protobuf/map_test_util.inc",
607*6777b538SAndroid Build Coastguard Worker    "src/google/protobuf/reflection_tester.cc",
608*6777b538SAndroid Build Coastguard Worker    "src/google/protobuf/test_util.cc",
609*6777b538SAndroid Build Coastguard Worker    "src/google/protobuf/test_util.inc",
610*6777b538SAndroid Build Coastguard Worker    "src/google/protobuf/testing/file.cc",
611*6777b538SAndroid Build Coastguard Worker    "src/google/protobuf/testing/googletest.cc",
612*6777b538SAndroid Build Coastguard Worker]
613*6777b538SAndroid Build Coastguard Worker
614*6777b538SAndroid Build Coastguard Workercc_binary(
615*6777b538SAndroid Build Coastguard Worker    name = "test_plugin",
616*6777b538SAndroid Build Coastguard Worker    testonly = True,
617*6777b538SAndroid Build Coastguard Worker    srcs = [
618*6777b538SAndroid Build Coastguard Worker        # AUTOGEN(test_plugin_srcs)
619*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/mock_code_generator.cc",
620*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/test_plugin.cc",
621*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/testing/file.cc",
622*6777b538SAndroid Build Coastguard Worker    ],
623*6777b538SAndroid Build Coastguard Worker    deps = [
624*6777b538SAndroid Build Coastguard Worker        ":protobuf",
625*6777b538SAndroid Build Coastguard Worker        ":protoc_lib",
626*6777b538SAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
627*6777b538SAndroid Build Coastguard Worker    ],
628*6777b538SAndroid Build Coastguard Worker)
629*6777b538SAndroid Build Coastguard Worker
630*6777b538SAndroid Build Coastguard Workercc_test(
631*6777b538SAndroid Build Coastguard Worker    name = "win32_test",
632*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/io/io_win32_unittest.cc"],
633*6777b538SAndroid Build Coastguard Worker    tags = [
634*6777b538SAndroid Build Coastguard Worker        "manual",
635*6777b538SAndroid Build Coastguard Worker        "windows",
636*6777b538SAndroid Build Coastguard Worker    ],
637*6777b538SAndroid Build Coastguard Worker    deps = [
638*6777b538SAndroid Build Coastguard Worker        ":protobuf_lite",
639*6777b538SAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
640*6777b538SAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
641*6777b538SAndroid Build Coastguard Worker    ],
642*6777b538SAndroid Build Coastguard Worker)
643*6777b538SAndroid Build Coastguard Worker
644*6777b538SAndroid Build Coastguard Workercc_test(
645*6777b538SAndroid Build Coastguard Worker    name = "protobuf_test",
646*6777b538SAndroid Build Coastguard Worker    srcs = COMMON_TEST_SRCS + [
647*6777b538SAndroid Build Coastguard Worker        # AUTOGEN(test_srcs)
648*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/any_test.cc",
649*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/arena_unittest.cc",
650*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/arenastring_unittest.cc",
651*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/arenaz_sampler_test.cc",
652*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/annotation_test_util.cc",
653*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/command_line_interface_unittest.cc",
654*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/bootstrap_unittest.cc",
655*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/metadata_test.cc",
656*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/move_unittest.cc",
657*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/plugin_unittest.cc",
658*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/unittest.cc",
659*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/cpp/unittest.inc",
660*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_bootstrap_unittest.cc",
661*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/csharp/csharp_generator_unittest.cc",
662*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/importer_unittest.cc",
663*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/doc_comment_unittest.cc",
664*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/java/plugin_unittest.cc",
665*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/mock_code_generator.cc",
666*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc",
667*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/parser_unittest.cc",
668*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/python/plugin_unittest.cc",
669*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc",
670*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/descriptor_database_unittest.cc",
671*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/descriptor_unittest.cc",
672*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/drop_unknown_fields_test.cc",
673*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/dynamic_message_unittest.cc",
674*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/extension_set_unittest.cc",
675*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/generated_message_reflection_unittest.cc",
676*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/generated_message_tctable_lite_test.cc",
677*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/inlined_string_field_unittest.cc",
678*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/coded_stream_unittest.cc",
679*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/io_win32_unittest.cc",
680*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/printer_unittest.cc",
681*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/tokenizer_unittest.cc",
682*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/io/zero_copy_stream_unittest.cc",
683*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/map_field_test.cc",
684*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/map_test.cc",
685*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/map_test.inc",
686*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/message_unittest.cc",
687*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/message_unittest.inc",
688*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/no_field_presence_test.cc",
689*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/preserve_unknown_enum_test.cc",
690*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/proto3_arena_lite_unittest.cc",
691*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/proto3_arena_unittest.cc",
692*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/proto3_lite_unittest.cc",
693*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/proto3_lite_unittest.inc",
694*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/reflection_ops_unittest.cc",
695*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/repeated_field_reflection_unittest.cc",
696*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/repeated_field_unittest.cc",
697*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/bytestream_unittest.cc",
698*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/common_unittest.cc",
699*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/int128_unittest.cc",
700*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/status_test.cc",
701*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/statusor_test.cc",
702*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/stringpiece_unittest.cc",
703*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/stringprintf_unittest.cc",
704*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/structurally_valid_unittest.cc",
705*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/strutil_unittest.cc",
706*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/template_util_unittest.cc",
707*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/stubs/time_test.cc",
708*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/text_format_unittest.cc",
709*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unknown_field_set_unittest.cc",
710*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/delimited_message_util_test.cc",
711*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/field_comparator_test.cc",
712*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/field_mask_util_test.cc",
713*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/default_value_objectwriter_test.cc",
714*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/json_objectwriter_test.cc",
715*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/json_stream_parser_test.cc",
716*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/protostream_objectsource_test.cc",
717*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/protostream_objectwriter_test.cc",
718*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/internal/type_info_test_helper.cc",
719*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/json_util_test.cc",
720*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/message_differencer_unittest.cc",
721*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/time_util_test.cc",
722*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/util/type_resolver_util_test.cc",
723*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/well_known_types_unittest.cc",
724*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/wire_format_unittest.cc",
725*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/wire_format_unittest.inc",
726*6777b538SAndroid Build Coastguard Worker    ],
727*6777b538SAndroid Build Coastguard Worker    copts = COPTS + select({
728*6777b538SAndroid Build Coastguard Worker        "//build_defs:config_msvc": [],
729*6777b538SAndroid Build Coastguard Worker        "//conditions:default": [
730*6777b538SAndroid Build Coastguard Worker            "-Wno-deprecated-declarations",
731*6777b538SAndroid Build Coastguard Worker        ],
732*6777b538SAndroid Build Coastguard Worker    }),
733*6777b538SAndroid Build Coastguard Worker    data = [
734*6777b538SAndroid Build Coastguard Worker        # Files for csharp_bootstrap_unittest.cc.
735*6777b538SAndroid Build Coastguard Worker        "//conformance:all_files",
736*6777b538SAndroid Build Coastguard Worker        ":test_plugin",
737*6777b538SAndroid Build Coastguard Worker    ] + glob([
738*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/**/*",
739*6777b538SAndroid Build Coastguard Worker    ]) + glob(
740*6777b538SAndroid Build Coastguard Worker        [
741*6777b538SAndroid Build Coastguard Worker            # Files for csharp_bootstrap_unittest.cc.
742*6777b538SAndroid Build Coastguard Worker            "csharp/src/**/*",
743*6777b538SAndroid Build Coastguard Worker        ],
744*6777b538SAndroid Build Coastguard Worker        allow_empty = True,
745*6777b538SAndroid Build Coastguard Worker    ),
746*6777b538SAndroid Build Coastguard Worker    includes = [
747*6777b538SAndroid Build Coastguard Worker        "src/",
748*6777b538SAndroid Build Coastguard Worker    ],
749*6777b538SAndroid Build Coastguard Worker    linkopts = LINK_OPTS,
750*6777b538SAndroid Build Coastguard Worker    deps = [
751*6777b538SAndroid Build Coastguard Worker        ":cc_test_protos",
752*6777b538SAndroid Build Coastguard Worker        ":protobuf",
753*6777b538SAndroid Build Coastguard Worker        ":protoc_lib",
754*6777b538SAndroid Build Coastguard Worker        "@com_google_googletest//:gtest",
755*6777b538SAndroid Build Coastguard Worker        "@com_google_googletest//:gtest_main",
756*6777b538SAndroid Build Coastguard Worker    ] + select({
757*6777b538SAndroid Build Coastguard Worker        "//build_defs:config_msvc": [],
758*6777b538SAndroid Build Coastguard Worker        "//conditions:default": ["@zlib//:zlib"],
759*6777b538SAndroid Build Coastguard Worker    }),
760*6777b538SAndroid Build Coastguard Worker)
761*6777b538SAndroid Build Coastguard Worker
762*6777b538SAndroid Build Coastguard Worker################################################################################
763*6777b538SAndroid Build Coastguard Worker# Java support
764*6777b538SAndroid Build Coastguard Worker################################################################################
765*6777b538SAndroid Build Coastguard Worker
766*6777b538SAndroid Build Coastguard Workeralias(
767*6777b538SAndroid Build Coastguard Worker    name = "protobuf_java",
768*6777b538SAndroid Build Coastguard Worker    actual = "//java/core",
769*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
770*6777b538SAndroid Build Coastguard Worker)
771*6777b538SAndroid Build Coastguard Worker
772*6777b538SAndroid Build Coastguard Workeralias(
773*6777b538SAndroid Build Coastguard Worker    name = "protobuf_javalite",
774*6777b538SAndroid Build Coastguard Worker    actual = "//java/lite",
775*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
776*6777b538SAndroid Build Coastguard Worker)
777*6777b538SAndroid Build Coastguard Worker
778*6777b538SAndroid Build Coastguard Workeralias(
779*6777b538SAndroid Build Coastguard Worker    name = "protobuf_java_util",
780*6777b538SAndroid Build Coastguard Worker    actual = "//java/util",
781*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
782*6777b538SAndroid Build Coastguard Worker)
783*6777b538SAndroid Build Coastguard Worker
784*6777b538SAndroid Build Coastguard Workeralias(
785*6777b538SAndroid Build Coastguard Worker    name = "java_toolchain",
786*6777b538SAndroid Build Coastguard Worker    actual = "//java/core:toolchain",
787*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
788*6777b538SAndroid Build Coastguard Worker)
789*6777b538SAndroid Build Coastguard Worker
790*6777b538SAndroid Build Coastguard Workeralias(
791*6777b538SAndroid Build Coastguard Worker    name = "javalite_toolchain",
792*6777b538SAndroid Build Coastguard Worker    actual = "//java/lite:toolchain",
793*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
794*6777b538SAndroid Build Coastguard Worker)
795*6777b538SAndroid Build Coastguard Worker
796*6777b538SAndroid Build Coastguard Worker################################################################################
797*6777b538SAndroid Build Coastguard Worker# Python support
798*6777b538SAndroid Build Coastguard Worker################################################################################
799*6777b538SAndroid Build Coastguard Worker
800*6777b538SAndroid Build Coastguard Workerpy_library(
801*6777b538SAndroid Build Coastguard Worker    name = "python_srcs",
802*6777b538SAndroid Build Coastguard Worker    srcs = glob(
803*6777b538SAndroid Build Coastguard Worker        [
804*6777b538SAndroid Build Coastguard Worker            "python/google/protobuf/**/*.py",
805*6777b538SAndroid Build Coastguard Worker        ],
806*6777b538SAndroid Build Coastguard Worker    ),
807*6777b538SAndroid Build Coastguard Worker    imports = ["python"],
808*6777b538SAndroid Build Coastguard Worker    srcs_version = "PY2AND3",
809*6777b538SAndroid Build Coastguard Worker    visibility = ["@upb//:__subpackages__"],
810*6777b538SAndroid Build Coastguard Worker)
811*6777b538SAndroid Build Coastguard Worker
812*6777b538SAndroid Build Coastguard Workerpy_library(
813*6777b538SAndroid Build Coastguard Worker    name = "python_test_srcs",
814*6777b538SAndroid Build Coastguard Worker    srcs = glob(
815*6777b538SAndroid Build Coastguard Worker        [
816*6777b538SAndroid Build Coastguard Worker            "python/google/protobuf/internal/*_test.py",
817*6777b538SAndroid Build Coastguard Worker            "python/google/protobuf/internal/test_util.py",
818*6777b538SAndroid Build Coastguard Worker        ],
819*6777b538SAndroid Build Coastguard Worker    ),
820*6777b538SAndroid Build Coastguard Worker    imports = ["python"],
821*6777b538SAndroid Build Coastguard Worker    srcs_version = "PY3",
822*6777b538SAndroid Build Coastguard Worker    visibility = ["@upb//:__subpackages__"],
823*6777b538SAndroid Build Coastguard Worker)
824*6777b538SAndroid Build Coastguard Worker
825*6777b538SAndroid Build Coastguard Workercc_binary(
826*6777b538SAndroid Build Coastguard Worker    name = "python/google/protobuf/internal/_api_implementation.so",
827*6777b538SAndroid Build Coastguard Worker    srcs = ["python/google/protobuf/internal/api_implementation.cc"],
828*6777b538SAndroid Build Coastguard Worker    copts = COPTS + [
829*6777b538SAndroid Build Coastguard Worker        "-DPYTHON_PROTO2_CPP_IMPL_V2",
830*6777b538SAndroid Build Coastguard Worker    ],
831*6777b538SAndroid Build Coastguard Worker    linkshared = 1,
832*6777b538SAndroid Build Coastguard Worker    linkstatic = 1,
833*6777b538SAndroid Build Coastguard Worker    tags = [
834*6777b538SAndroid Build Coastguard Worker        # Exclude this target from wildcard expansion (//...) because it may
835*6777b538SAndroid Build Coastguard Worker        # not even be buildable. It will be built if it is needed according
836*6777b538SAndroid Build Coastguard Worker        # to :use_fast_cpp_protos.
837*6777b538SAndroid Build Coastguard Worker        # https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes
838*6777b538SAndroid Build Coastguard Worker        "manual",
839*6777b538SAndroid Build Coastguard Worker    ],
840*6777b538SAndroid Build Coastguard Worker    deps = select({
841*6777b538SAndroid Build Coastguard Worker        "//conditions:default": [],
842*6777b538SAndroid Build Coastguard Worker        ":use_fast_cpp_protos": ["//external:python_headers"],
843*6777b538SAndroid Build Coastguard Worker    }),
844*6777b538SAndroid Build Coastguard Worker)
845*6777b538SAndroid Build Coastguard Worker
846*6777b538SAndroid Build Coastguard Workercc_binary(
847*6777b538SAndroid Build Coastguard Worker    name = "python/google/protobuf/pyext/_message.so",
848*6777b538SAndroid Build Coastguard Worker    srcs = glob([
849*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/pyext/*.cc",
850*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/pyext/*.h",
851*6777b538SAndroid Build Coastguard Worker    ]),
852*6777b538SAndroid Build Coastguard Worker    copts = COPTS + [
853*6777b538SAndroid Build Coastguard Worker        "-DGOOGLE_PROTOBUF_HAS_ONEOF=1",
854*6777b538SAndroid Build Coastguard Worker    ] + select({
855*6777b538SAndroid Build Coastguard Worker        "//conditions:default": [],
856*6777b538SAndroid Build Coastguard Worker        ":allow_oversize_protos": ["-DPROTOBUF_PYTHON_ALLOW_OVERSIZE_PROTOS=1"],
857*6777b538SAndroid Build Coastguard Worker    }),
858*6777b538SAndroid Build Coastguard Worker    includes = [
859*6777b538SAndroid Build Coastguard Worker        "python/",
860*6777b538SAndroid Build Coastguard Worker        "src/",
861*6777b538SAndroid Build Coastguard Worker    ],
862*6777b538SAndroid Build Coastguard Worker    linkshared = 1,
863*6777b538SAndroid Build Coastguard Worker    linkstatic = 1,
864*6777b538SAndroid Build Coastguard Worker    tags = [
865*6777b538SAndroid Build Coastguard Worker        # Exclude this target from wildcard expansion (//...) because it may
866*6777b538SAndroid Build Coastguard Worker        # not even be buildable. It will be built if it is needed according
867*6777b538SAndroid Build Coastguard Worker        # to :use_fast_cpp_protos.
868*6777b538SAndroid Build Coastguard Worker        # https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes
869*6777b538SAndroid Build Coastguard Worker        "manual",
870*6777b538SAndroid Build Coastguard Worker    ],
871*6777b538SAndroid Build Coastguard Worker    deps = [
872*6777b538SAndroid Build Coastguard Worker        ":protobuf",
873*6777b538SAndroid Build Coastguard Worker        ":proto_api",
874*6777b538SAndroid Build Coastguard Worker    ] + select({
875*6777b538SAndroid Build Coastguard Worker        "//conditions:default": [],
876*6777b538SAndroid Build Coastguard Worker        ":use_fast_cpp_protos": ["//external:python_headers"],
877*6777b538SAndroid Build Coastguard Worker    }),
878*6777b538SAndroid Build Coastguard Worker)
879*6777b538SAndroid Build Coastguard Worker
880*6777b538SAndroid Build Coastguard Workerconfig_setting(
881*6777b538SAndroid Build Coastguard Worker    name = "use_fast_cpp_protos",
882*6777b538SAndroid Build Coastguard Worker    values = {
883*6777b538SAndroid Build Coastguard Worker        "define": "use_fast_cpp_protos=true",
884*6777b538SAndroid Build Coastguard Worker    },
885*6777b538SAndroid Build Coastguard Worker    visibility = [
886*6777b538SAndroid Build Coastguard Worker        # Public, but Protobuf only visibility.
887*6777b538SAndroid Build Coastguard Worker        "//:__subpackages__",
888*6777b538SAndroid Build Coastguard Worker    ],
889*6777b538SAndroid Build Coastguard Worker)
890*6777b538SAndroid Build Coastguard Worker
891*6777b538SAndroid Build Coastguard Workerconfig_setting(
892*6777b538SAndroid Build Coastguard Worker    name = "allow_oversize_protos",
893*6777b538SAndroid Build Coastguard Worker    values = {
894*6777b538SAndroid Build Coastguard Worker        "define": "allow_oversize_protos=true",
895*6777b538SAndroid Build Coastguard Worker    },
896*6777b538SAndroid Build Coastguard Worker    visibility = [
897*6777b538SAndroid Build Coastguard Worker        # Public, but Protobuf only visibility.
898*6777b538SAndroid Build Coastguard Worker        "//:__subpackages__",
899*6777b538SAndroid Build Coastguard Worker    ],
900*6777b538SAndroid Build Coastguard Worker)
901*6777b538SAndroid Build Coastguard Worker
902*6777b538SAndroid Build Coastguard Worker# Copy the builtin proto files from src/google/protobuf to
903*6777b538SAndroid Build Coastguard Worker# python/google/protobuf. This way, the generated Python sources will be in the
904*6777b538SAndroid Build Coastguard Worker# same directory as the Python runtime sources. This is necessary for the
905*6777b538SAndroid Build Coastguard Worker# modules to be imported correctly since they are all part of the same Python
906*6777b538SAndroid Build Coastguard Worker# package.
907*6777b538SAndroid Build Coastguard Workerinternal_copied_filegroup(
908*6777b538SAndroid Build Coastguard Worker    name = "protos_python",
909*6777b538SAndroid Build Coastguard Worker    srcs = [
910*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/any.proto",
911*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/api.proto",
912*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/compiler/plugin.proto",
913*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/descriptor.proto",
914*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/duration.proto",
915*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/empty.proto",
916*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/field_mask.proto",
917*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/source_context.proto",
918*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/struct.proto",
919*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/timestamp.proto",
920*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/type.proto",
921*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/wrappers.proto",
922*6777b538SAndroid Build Coastguard Worker    ],
923*6777b538SAndroid Build Coastguard Worker    dest = "python",
924*6777b538SAndroid Build Coastguard Worker    strip_prefix = "src",
925*6777b538SAndroid Build Coastguard Worker)
926*6777b538SAndroid Build Coastguard Worker
927*6777b538SAndroid Build Coastguard Workerpy_proto_library(
928*6777b538SAndroid Build Coastguard Worker    name = "well_known_types_py_pb2",
929*6777b538SAndroid Build Coastguard Worker    srcs = [
930*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/any.proto",
931*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/api.proto",
932*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/compiler/plugin.proto",
933*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/descriptor.proto",
934*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/duration.proto",
935*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/empty.proto",
936*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/field_mask.proto",
937*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/source_context.proto",
938*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/struct.proto",
939*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/timestamp.proto",
940*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/type.proto",
941*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/wrappers.proto",
942*6777b538SAndroid Build Coastguard Worker    ],
943*6777b538SAndroid Build Coastguard Worker    include = "python",
944*6777b538SAndroid Build Coastguard Worker    default_runtime = "",
945*6777b538SAndroid Build Coastguard Worker    protoc = ":protoc",
946*6777b538SAndroid Build Coastguard Worker    srcs_version = "PY2AND3",
947*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
948*6777b538SAndroid Build Coastguard Worker)
949*6777b538SAndroid Build Coastguard Worker
950*6777b538SAndroid Build Coastguard Workerpy_library(
951*6777b538SAndroid Build Coastguard Worker    name = "protobuf_python",
952*6777b538SAndroid Build Coastguard Worker    data = select({
953*6777b538SAndroid Build Coastguard Worker        "//conditions:default": [],
954*6777b538SAndroid Build Coastguard Worker        ":use_fast_cpp_protos": [
955*6777b538SAndroid Build Coastguard Worker            ":python/google/protobuf/internal/_api_implementation.so",
956*6777b538SAndroid Build Coastguard Worker            ":python/google/protobuf/pyext/_message.so",
957*6777b538SAndroid Build Coastguard Worker        ],
958*6777b538SAndroid Build Coastguard Worker    }),
959*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
960*6777b538SAndroid Build Coastguard Worker    deps = [
961*6777b538SAndroid Build Coastguard Worker        ":python_srcs",
962*6777b538SAndroid Build Coastguard Worker        ":well_known_types_py_pb2",
963*6777b538SAndroid Build Coastguard Worker    ],
964*6777b538SAndroid Build Coastguard Worker)
965*6777b538SAndroid Build Coastguard Worker
966*6777b538SAndroid Build Coastguard Worker# Copy the test proto files from src/google/protobuf to
967*6777b538SAndroid Build Coastguard Worker# python/google/protobuf. This way, the generated Python sources will be in the
968*6777b538SAndroid Build Coastguard Worker# same directory as the Python runtime sources. This is necessary for the
969*6777b538SAndroid Build Coastguard Worker# modules to be imported correctly by the tests since they are all part of the
970*6777b538SAndroid Build Coastguard Worker# same Python package.
971*6777b538SAndroid Build Coastguard Workerinternal_copied_filegroup(
972*6777b538SAndroid Build Coastguard Worker    name = "protos_python_test",
973*6777b538SAndroid Build Coastguard Worker    srcs = LITE_TEST_PROTOS + TEST_PROTOS,
974*6777b538SAndroid Build Coastguard Worker    dest = "python",
975*6777b538SAndroid Build Coastguard Worker    strip_prefix = "src",
976*6777b538SAndroid Build Coastguard Worker)
977*6777b538SAndroid Build Coastguard Worker
978*6777b538SAndroid Build Coastguard Worker# TODO(dzc): Remove this once py_proto_library can have labels in srcs, in
979*6777b538SAndroid Build Coastguard Worker# which case we can simply add :protos_python_test in srcs.
980*6777b538SAndroid Build Coastguard WorkerCOPIED_LITE_TEST_PROTOS = ["python/" + s for s in RELATIVE_LITE_TEST_PROTOS]
981*6777b538SAndroid Build Coastguard Worker
982*6777b538SAndroid Build Coastguard WorkerCOPIED_TEST_PROTOS = ["python/" + s for s in RELATIVE_TEST_PROTOS]
983*6777b538SAndroid Build Coastguard Worker
984*6777b538SAndroid Build Coastguard Workerpy_proto_library(
985*6777b538SAndroid Build Coastguard Worker    name = "python_common_test_protos",
986*6777b538SAndroid Build Coastguard Worker    srcs = COPIED_LITE_TEST_PROTOS + COPIED_TEST_PROTOS,
987*6777b538SAndroid Build Coastguard Worker    include = "python",
988*6777b538SAndroid Build Coastguard Worker    default_runtime = "",
989*6777b538SAndroid Build Coastguard Worker    protoc = ":protoc",
990*6777b538SAndroid Build Coastguard Worker    srcs_version = "PY2AND3",
991*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
992*6777b538SAndroid Build Coastguard Worker    deps = [":well_known_types_py_pb2"],
993*6777b538SAndroid Build Coastguard Worker)
994*6777b538SAndroid Build Coastguard Worker
995*6777b538SAndroid Build Coastguard Workerpy_proto_library(
996*6777b538SAndroid Build Coastguard Worker    name = "python_specific_test_protos",
997*6777b538SAndroid Build Coastguard Worker    srcs = glob([
998*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/internal/*.proto",
999*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/internal/import_test_package/*.proto",
1000*6777b538SAndroid Build Coastguard Worker    ]),
1001*6777b538SAndroid Build Coastguard Worker    include = "python",
1002*6777b538SAndroid Build Coastguard Worker    default_runtime = ":protobuf_python",
1003*6777b538SAndroid Build Coastguard Worker    protoc = ":protoc",
1004*6777b538SAndroid Build Coastguard Worker    srcs_version = "PY2AND3",
1005*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
1006*6777b538SAndroid Build Coastguard Worker    deps = [":python_common_test_protos"],
1007*6777b538SAndroid Build Coastguard Worker)
1008*6777b538SAndroid Build Coastguard Worker
1009*6777b538SAndroid Build Coastguard Workerpy_library(
1010*6777b538SAndroid Build Coastguard Worker    name = "python_tests",
1011*6777b538SAndroid Build Coastguard Worker    srcs = glob(
1012*6777b538SAndroid Build Coastguard Worker        [
1013*6777b538SAndroid Build Coastguard Worker            "python/google/protobuf/internal/*_test.py",
1014*6777b538SAndroid Build Coastguard Worker            "python/google/protobuf/internal/test_util.py",
1015*6777b538SAndroid Build Coastguard Worker            "python/google/protobuf/internal/import_test_package/__init__.py",
1016*6777b538SAndroid Build Coastguard Worker        ],
1017*6777b538SAndroid Build Coastguard Worker    ),
1018*6777b538SAndroid Build Coastguard Worker    imports = ["python"],
1019*6777b538SAndroid Build Coastguard Worker    srcs_version = "PY2AND3",
1020*6777b538SAndroid Build Coastguard Worker    deps = [
1021*6777b538SAndroid Build Coastguard Worker        ":protobuf_python",
1022*6777b538SAndroid Build Coastguard Worker        ":python_common_test_protos",
1023*6777b538SAndroid Build Coastguard Worker        ":python_specific_test_protos",
1024*6777b538SAndroid Build Coastguard Worker    ],
1025*6777b538SAndroid Build Coastguard Worker)
1026*6777b538SAndroid Build Coastguard Worker
1027*6777b538SAndroid Build Coastguard Workerinternal_protobuf_py_tests(
1028*6777b538SAndroid Build Coastguard Worker    name = "python_tests_batch",
1029*6777b538SAndroid Build Coastguard Worker    data = glob([
1030*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/**/*",
1031*6777b538SAndroid Build Coastguard Worker    ]),
1032*6777b538SAndroid Build Coastguard Worker    modules = [
1033*6777b538SAndroid Build Coastguard Worker        "descriptor_database_test",
1034*6777b538SAndroid Build Coastguard Worker        "descriptor_pool_test",
1035*6777b538SAndroid Build Coastguard Worker        "descriptor_test",
1036*6777b538SAndroid Build Coastguard Worker        "generator_test",
1037*6777b538SAndroid Build Coastguard Worker        "json_format_test",
1038*6777b538SAndroid Build Coastguard Worker        "message_factory_test",
1039*6777b538SAndroid Build Coastguard Worker        "message_test",
1040*6777b538SAndroid Build Coastguard Worker        "proto_builder_test",
1041*6777b538SAndroid Build Coastguard Worker        "reflection_test",
1042*6777b538SAndroid Build Coastguard Worker        "service_reflection_test",
1043*6777b538SAndroid Build Coastguard Worker        "symbol_database_test",
1044*6777b538SAndroid Build Coastguard Worker        "text_encoding_test",
1045*6777b538SAndroid Build Coastguard Worker        "text_format_test",
1046*6777b538SAndroid Build Coastguard Worker        "unknown_fields_test",
1047*6777b538SAndroid Build Coastguard Worker        "wire_format_test",
1048*6777b538SAndroid Build Coastguard Worker    ],
1049*6777b538SAndroid Build Coastguard Worker    deps = [":python_tests"],
1050*6777b538SAndroid Build Coastguard Worker)
1051*6777b538SAndroid Build Coastguard Worker
1052*6777b538SAndroid Build Coastguard Workercc_library(
1053*6777b538SAndroid Build Coastguard Worker    name = "proto_api",
1054*6777b538SAndroid Build Coastguard Worker    hdrs = ["python/google/protobuf/proto_api.h"],
1055*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
1056*6777b538SAndroid Build Coastguard Worker    deps = [
1057*6777b538SAndroid Build Coastguard Worker        "//external:python_headers",
1058*6777b538SAndroid Build Coastguard Worker    ],
1059*6777b538SAndroid Build Coastguard Worker)
1060*6777b538SAndroid Build Coastguard Worker
1061*6777b538SAndroid Build Coastguard Workerproto_lang_toolchain(
1062*6777b538SAndroid Build Coastguard Worker    name = "cc_toolchain",
1063*6777b538SAndroid Build Coastguard Worker    blacklisted_protos = [
1064*6777b538SAndroid Build Coastguard Worker        "@com_google_protobuf//:any_proto",
1065*6777b538SAndroid Build Coastguard Worker        "@com_google_protobuf//:api_proto",
1066*6777b538SAndroid Build Coastguard Worker        "@com_google_protobuf//:compiler_plugin_proto",
1067*6777b538SAndroid Build Coastguard Worker        "@com_google_protobuf//:descriptor_proto",
1068*6777b538SAndroid Build Coastguard Worker        "@com_google_protobuf//:duration_proto",
1069*6777b538SAndroid Build Coastguard Worker        "@com_google_protobuf//:empty_proto",
1070*6777b538SAndroid Build Coastguard Worker        "@com_google_protobuf//:field_mask_proto",
1071*6777b538SAndroid Build Coastguard Worker        "@com_google_protobuf//:source_context_proto",
1072*6777b538SAndroid Build Coastguard Worker        "@com_google_protobuf//:struct_proto",
1073*6777b538SAndroid Build Coastguard Worker        "@com_google_protobuf//:timestamp_proto",
1074*6777b538SAndroid Build Coastguard Worker        "@com_google_protobuf//:type_proto",
1075*6777b538SAndroid Build Coastguard Worker        "@com_google_protobuf//:wrappers_proto",
1076*6777b538SAndroid Build Coastguard Worker    ],
1077*6777b538SAndroid Build Coastguard Worker    command_line = "--cpp_out=$(OUT)",
1078*6777b538SAndroid Build Coastguard Worker    runtime = ":protobuf",
1079*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
1080*6777b538SAndroid Build Coastguard Worker)
1081*6777b538SAndroid Build Coastguard Worker
1082*6777b538SAndroid Build Coastguard Workeralias(
1083*6777b538SAndroid Build Coastguard Worker    name = "objectivec",
1084*6777b538SAndroid Build Coastguard Worker    actual = "//objectivec",
1085*6777b538SAndroid Build Coastguard Worker    tags = ["manual"],
1086*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
1087*6777b538SAndroid Build Coastguard Worker)
1088*6777b538SAndroid Build Coastguard Worker
1089*6777b538SAndroid Build Coastguard Workeralias(
1090*6777b538SAndroid Build Coastguard Worker    name = "protobuf_objc",
1091*6777b538SAndroid Build Coastguard Worker    actual = "//objectivec",
1092*6777b538SAndroid Build Coastguard Worker    tags = ["manual"],
1093*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
1094*6777b538SAndroid Build Coastguard Worker)
1095*6777b538SAndroid Build Coastguard Worker
1096*6777b538SAndroid Build Coastguard Worker################################################################################
1097*6777b538SAndroid Build Coastguard Worker# Test generated proto support
1098*6777b538SAndroid Build Coastguard Worker################################################################################
1099*6777b538SAndroid Build Coastguard Worker
1100*6777b538SAndroid Build Coastguard Workergenrule(
1101*6777b538SAndroid Build Coastguard Worker    name = "generated_protos",
1102*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/unittest_import.proto"],
1103*6777b538SAndroid Build Coastguard Worker    outs = ["unittest_gen_import.proto"],
1104*6777b538SAndroid Build Coastguard Worker    cmd = "cat $(SRCS) | sed 's|google/|src/google/|' >  $(OUTS)",
1105*6777b538SAndroid Build Coastguard Worker)
1106*6777b538SAndroid Build Coastguard Worker
1107*6777b538SAndroid Build Coastguard Workerproto_library(
1108*6777b538SAndroid Build Coastguard Worker    name = "generated_protos_proto",
1109*6777b538SAndroid Build Coastguard Worker    srcs = [
1110*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unittest_import_public.proto",
1111*6777b538SAndroid Build Coastguard Worker        "unittest_gen_import.proto",
1112*6777b538SAndroid Build Coastguard Worker    ],
1113*6777b538SAndroid Build Coastguard Worker)
1114*6777b538SAndroid Build Coastguard Worker
1115*6777b538SAndroid Build Coastguard Workerpy_proto_library(
1116*6777b538SAndroid Build Coastguard Worker    name = "generated_protos_py",
1117*6777b538SAndroid Build Coastguard Worker    srcs = [
1118*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unittest_import_public.proto",
1119*6777b538SAndroid Build Coastguard Worker        "unittest_gen_import.proto",
1120*6777b538SAndroid Build Coastguard Worker    ],
1121*6777b538SAndroid Build Coastguard Worker    default_runtime = "",
1122*6777b538SAndroid Build Coastguard Worker    protoc = ":protoc",
1123*6777b538SAndroid Build Coastguard Worker)
1124*6777b538SAndroid Build Coastguard Worker
1125*6777b538SAndroid Build Coastguard Worker################################################################################
1126*6777b538SAndroid Build Coastguard Worker# Conformance tests
1127*6777b538SAndroid Build Coastguard Worker################################################################################
1128*6777b538SAndroid Build Coastguard Worker
1129*6777b538SAndroid Build Coastguard Workeralias(
1130*6777b538SAndroid Build Coastguard Worker    name = "conformance_test_runner",
1131*6777b538SAndroid Build Coastguard Worker    actual = "//conformance:conformance_test_runner",
1132*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
1133*6777b538SAndroid Build Coastguard Worker)
1134*6777b538SAndroid Build Coastguard Worker
1135*6777b538SAndroid Build Coastguard Workerproto_library(
1136*6777b538SAndroid Build Coastguard Worker    name = "test_messages_proto2_proto",
1137*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
1138*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/test_messages_proto2.proto"],
1139*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
1140*6777b538SAndroid Build Coastguard Worker)
1141*6777b538SAndroid Build Coastguard Worker
1142*6777b538SAndroid Build Coastguard Workerproto_library(
1143*6777b538SAndroid Build Coastguard Worker    name = "test_messages_proto3_proto",
1144*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
1145*6777b538SAndroid Build Coastguard Worker    srcs = ["src/google/protobuf/test_messages_proto3.proto"],
1146*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
1147*6777b538SAndroid Build Coastguard Worker    deps = [
1148*6777b538SAndroid Build Coastguard Worker        ":any_proto",
1149*6777b538SAndroid Build Coastguard Worker        ":duration_proto",
1150*6777b538SAndroid Build Coastguard Worker        ":field_mask_proto",
1151*6777b538SAndroid Build Coastguard Worker        ":struct_proto",
1152*6777b538SAndroid Build Coastguard Worker        ":timestamp_proto",
1153*6777b538SAndroid Build Coastguard Worker        ":wrappers_proto",
1154*6777b538SAndroid Build Coastguard Worker    ],
1155*6777b538SAndroid Build Coastguard Worker)
1156*6777b538SAndroid Build Coastguard Worker
1157*6777b538SAndroid Build Coastguard Worker# TODO: re-enable this test if appropriate, or replace with something that
1158*6777b538SAndroid Build Coastguard Worker# uses the new setup.
1159*6777b538SAndroid Build Coastguard Worker# sh_test(
1160*6777b538SAndroid Build Coastguard Worker#     name = "build_files_updated_unittest",
1161*6777b538SAndroid Build Coastguard Worker#     srcs = [
1162*6777b538SAndroid Build Coastguard Worker#         "build_files_updated_unittest.sh",
1163*6777b538SAndroid Build Coastguard Worker#     ],
1164*6777b538SAndroid Build Coastguard Worker#     data = [
1165*6777b538SAndroid Build Coastguard Worker#         "BUILD",
1166*6777b538SAndroid Build Coastguard Worker#         "cmake/extract_includes.bat.in",
1167*6777b538SAndroid Build Coastguard Worker#         "cmake/libprotobuf.cmake",
1168*6777b538SAndroid Build Coastguard Worker#         "cmake/libprotobuf-lite.cmake",
1169*6777b538SAndroid Build Coastguard Worker#         "cmake/libprotoc.cmake",
1170*6777b538SAndroid Build Coastguard Worker#         "cmake/tests.cmake",
1171*6777b538SAndroid Build Coastguard Worker#         "src/Makefile.am",
1172*6777b538SAndroid Build Coastguard Worker#         "update_file_lists.sh",
1173*6777b538SAndroid Build Coastguard Worker#     ],
1174*6777b538SAndroid Build Coastguard Worker# )
1175*6777b538SAndroid Build Coastguard Worker
1176*6777b538SAndroid Build Coastguard Workerjava_proto_library(
1177*6777b538SAndroid Build Coastguard Worker    name = "test_messages_proto2_java_proto",
1178*6777b538SAndroid Build Coastguard Worker    visibility = [
1179*6777b538SAndroid Build Coastguard Worker        "//conformance:__pkg__",
1180*6777b538SAndroid Build Coastguard Worker        "//java:__subpackages__",
1181*6777b538SAndroid Build Coastguard Worker    ],
1182*6777b538SAndroid Build Coastguard Worker    deps = [":test_messages_proto2_proto"],
1183*6777b538SAndroid Build Coastguard Worker)
1184*6777b538SAndroid Build Coastguard Worker
1185*6777b538SAndroid Build Coastguard Workerjava_proto_library(
1186*6777b538SAndroid Build Coastguard Worker    name = "test_messages_proto3_java_proto",
1187*6777b538SAndroid Build Coastguard Worker    visibility = [
1188*6777b538SAndroid Build Coastguard Worker        "//conformance:__pkg__",
1189*6777b538SAndroid Build Coastguard Worker        "//java:__subpackages__",
1190*6777b538SAndroid Build Coastguard Worker    ],
1191*6777b538SAndroid Build Coastguard Worker    deps = [":test_messages_proto3_proto"],
1192*6777b538SAndroid Build Coastguard Worker)
1193*6777b538SAndroid Build Coastguard Worker
1194*6777b538SAndroid Build Coastguard Workerjava_lite_proto_library(
1195*6777b538SAndroid Build Coastguard Worker    name = "test_messages_proto2_java_proto_lite",
1196*6777b538SAndroid Build Coastguard Worker    visibility = [
1197*6777b538SAndroid Build Coastguard Worker        "//conformance:__pkg__",
1198*6777b538SAndroid Build Coastguard Worker        "//java:__subpackages__",
1199*6777b538SAndroid Build Coastguard Worker    ],
1200*6777b538SAndroid Build Coastguard Worker    deps = [":test_messages_proto2_proto"],
1201*6777b538SAndroid Build Coastguard Worker)
1202*6777b538SAndroid Build Coastguard Worker
1203*6777b538SAndroid Build Coastguard Workerjava_lite_proto_library(
1204*6777b538SAndroid Build Coastguard Worker    name = "test_messages_proto3_java_proto_lite",
1205*6777b538SAndroid Build Coastguard Worker    visibility = [
1206*6777b538SAndroid Build Coastguard Worker        "//conformance:__pkg__",
1207*6777b538SAndroid Build Coastguard Worker        "//java:__subpackages__",
1208*6777b538SAndroid Build Coastguard Worker    ],
1209*6777b538SAndroid Build Coastguard Worker    deps = [":test_messages_proto3_proto"],
1210*6777b538SAndroid Build Coastguard Worker)
1211*6777b538SAndroid Build Coastguard Worker
1212*6777b538SAndroid Build Coastguard Workerfilegroup(
1213*6777b538SAndroid Build Coastguard Worker    name = "bzl_srcs",
1214*6777b538SAndroid Build Coastguard Worker    srcs = glob(["**/*.bzl"]),
1215*6777b538SAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
1216*6777b538SAndroid Build Coastguard Worker)
1217*6777b538SAndroid Build Coastguard Worker
1218*6777b538SAndroid Build Coastguard Worker# Kotlin proto rules
1219*6777b538SAndroid Build Coastguard Worker
1220*6777b538SAndroid Build Coastguard Workerproto_library(
1221*6777b538SAndroid Build Coastguard Worker    name = "kt_unittest_lite",
1222*6777b538SAndroid Build Coastguard Worker    srcs = [
1223*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/map_lite_unittest.proto",
1224*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unittest_import_lite.proto",
1225*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unittest_import_public_lite.proto",
1226*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unittest_lite.proto",
1227*6777b538SAndroid Build Coastguard Worker    ],
1228*6777b538SAndroid Build Coastguard Worker    visibility = ["//java/kotlin-lite:__subpackages__"],
1229*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
1230*6777b538SAndroid Build Coastguard Worker)
1231*6777b538SAndroid Build Coastguard Worker
1232*6777b538SAndroid Build Coastguard Workerproto_library(
1233*6777b538SAndroid Build Coastguard Worker    name = "kt_unittest",
1234*6777b538SAndroid Build Coastguard Worker    srcs = [
1235*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/map_proto2_unittest.proto",
1236*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unittest.proto",
1237*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unittest_import.proto",
1238*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unittest_import_public.proto",
1239*6777b538SAndroid Build Coastguard Worker    ],
1240*6777b538SAndroid Build Coastguard Worker    visibility = ["//java/kotlin:__subpackages__"],
1241*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
1242*6777b538SAndroid Build Coastguard Worker)
1243*6777b538SAndroid Build Coastguard Worker
1244*6777b538SAndroid Build Coastguard Workerproto_library(
1245*6777b538SAndroid Build Coastguard Worker    name = "kt_proto3_unittest",
1246*6777b538SAndroid Build Coastguard Worker    srcs = [
1247*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unittest_import.proto",
1248*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unittest_import_public.proto",
1249*6777b538SAndroid Build Coastguard Worker        "src/google/protobuf/unittest_proto3.proto",
1250*6777b538SAndroid Build Coastguard Worker    ],
1251*6777b538SAndroid Build Coastguard Worker    visibility = [
1252*6777b538SAndroid Build Coastguard Worker        "//java/kotlin:__subpackages__",
1253*6777b538SAndroid Build Coastguard Worker        "//java/kotlin-lite:__subpackages__",
1254*6777b538SAndroid Build Coastguard Worker    ],
1255*6777b538SAndroid Build Coastguard Worker    strip_import_prefix = "src",
1256*6777b538SAndroid Build Coastguard Worker)
1257*6777b538SAndroid Build Coastguard Worker
1258*6777b538SAndroid Build Coastguard Worker################################################################################
1259*6777b538SAndroid Build Coastguard Worker# Packaging rules
1260*6777b538SAndroid Build Coastguard Worker################################################################################
1261*6777b538SAndroid Build Coastguard Worker
1262*6777b538SAndroid Build Coastguard Worker# Files included in all source distributions
1263*6777b538SAndroid Build Coastguard Workerpkg_files(
1264*6777b538SAndroid Build Coastguard Worker    name = "common_dist_files",
1265*6777b538SAndroid Build Coastguard Worker    srcs = glob(
1266*6777b538SAndroid Build Coastguard Worker        [
1267*6777b538SAndroid Build Coastguard Worker            "*.bzl",
1268*6777b538SAndroid Build Coastguard Worker            "cmake/*.cmake",
1269*6777b538SAndroid Build Coastguard Worker            "cmake/*.in",
1270*6777b538SAndroid Build Coastguard Worker            "editors/*",
1271*6777b538SAndroid Build Coastguard Worker
1272*6777b538SAndroid Build Coastguard Worker            # Several of these files are generated by autogen.sh, so using
1273*6777b538SAndroid Build Coastguard Worker            # glob() lets us ignore them if they are missing. (This is not good
1274*6777b538SAndroid Build Coastguard Worker            # practice, though.)
1275*6777b538SAndroid Build Coastguard Worker            "Makefile.in",
1276*6777b538SAndroid Build Coastguard Worker            "aclocal.m4",
1277*6777b538SAndroid Build Coastguard Worker            "ar-lib",
1278*6777b538SAndroid Build Coastguard Worker            "compile",
1279*6777b538SAndroid Build Coastguard Worker            "config*",
1280*6777b538SAndroid Build Coastguard Worker            "depcomp",
1281*6777b538SAndroid Build Coastguard Worker            "install-sh",
1282*6777b538SAndroid Build Coastguard Worker            "ltmain.sh",
1283*6777b538SAndroid Build Coastguard Worker            "m4/*.m4",
1284*6777b538SAndroid Build Coastguard Worker            "missing",
1285*6777b538SAndroid Build Coastguard Worker            "protobuf*.pc.in",
1286*6777b538SAndroid Build Coastguard Worker            "test-driver",
1287*6777b538SAndroid Build Coastguard Worker        ],
1288*6777b538SAndroid Build Coastguard Worker        allow_empty = True,
1289*6777b538SAndroid Build Coastguard Worker    ) + [
1290*6777b538SAndroid Build Coastguard Worker        "BUILD.bazel",
1291*6777b538SAndroid Build Coastguard Worker        "CHANGES.txt",
1292*6777b538SAndroid Build Coastguard Worker        "CMakeLists.txt",
1293*6777b538SAndroid Build Coastguard Worker        "CONTRIBUTORS.txt",
1294*6777b538SAndroid Build Coastguard Worker        "LICENSE",
1295*6777b538SAndroid Build Coastguard Worker        "Makefile.am",
1296*6777b538SAndroid Build Coastguard Worker        "README.md",
1297*6777b538SAndroid Build Coastguard Worker        "WORKSPACE",
1298*6777b538SAndroid Build Coastguard Worker        "autogen.sh",
1299*6777b538SAndroid Build Coastguard Worker        "build_files_updated_unittest.sh",
1300*6777b538SAndroid Build Coastguard Worker        "cmake/CMakeLists.txt",
1301*6777b538SAndroid Build Coastguard Worker        "cmake/README.md",
1302*6777b538SAndroid Build Coastguard Worker        "generate_descriptor_proto.sh",
1303*6777b538SAndroid Build Coastguard Worker        "maven_install.json",
1304*6777b538SAndroid Build Coastguard Worker        "update_file_lists.sh",
1305*6777b538SAndroid Build Coastguard Worker        "//third_party:BUILD.bazel",
1306*6777b538SAndroid Build Coastguard Worker        "//third_party:zlib.BUILD",
1307*6777b538SAndroid Build Coastguard Worker        "//util/python:BUILD.bazel",
1308*6777b538SAndroid Build Coastguard Worker    ],
1309*6777b538SAndroid Build Coastguard Worker    strip_prefix = strip_prefix.from_root(""),
1310*6777b538SAndroid Build Coastguard Worker    visibility = ["//pkg:__pkg__"],
1311*6777b538SAndroid Build Coastguard Worker)
1312*6777b538SAndroid Build Coastguard Worker
1313*6777b538SAndroid Build Coastguard Worker# C++ runtime
1314*6777b538SAndroid Build Coastguard Workerpkg_files(
1315*6777b538SAndroid Build Coastguard Worker    name = "cpp_dist_files",
1316*6777b538SAndroid Build Coastguard Worker    srcs = glob(
1317*6777b538SAndroid Build Coastguard Worker        ["src/**/*"],
1318*6777b538SAndroid Build Coastguard Worker        exclude = [
1319*6777b538SAndroid Build Coastguard Worker            "src/google/protobuf/compiler/objectivec/method_dump.sh",  # not in autotools dist
1320*6777b538SAndroid Build Coastguard Worker        ],
1321*6777b538SAndroid Build Coastguard Worker    ),
1322*6777b538SAndroid Build Coastguard Worker    strip_prefix = strip_prefix.from_root(""),
1323*6777b538SAndroid Build Coastguard Worker    visibility = ["//pkg:__pkg__"],
1324*6777b538SAndroid Build Coastguard Worker)
1325*6777b538SAndroid Build Coastguard Worker
1326*6777b538SAndroid Build Coastguard Worker# Additional files for C#
1327*6777b538SAndroid Build Coastguard Workerpkg_files(
1328*6777b538SAndroid Build Coastguard Worker    name = "csharp_dist_files",
1329*6777b538SAndroid Build Coastguard Worker    srcs = [
1330*6777b538SAndroid Build Coastguard Worker        "global.json",
1331*6777b538SAndroid Build Coastguard Worker    ],
1332*6777b538SAndroid Build Coastguard Worker    visibility = ["//pkg:__pkg__"],
1333*6777b538SAndroid Build Coastguard Worker)
1334*6777b538SAndroid Build Coastguard Worker
1335*6777b538SAndroid Build Coastguard Worker# Additional files for ObjC
1336*6777b538SAndroid Build Coastguard Workerpkg_files(
1337*6777b538SAndroid Build Coastguard Worker    name = "objectivec_dist_files",
1338*6777b538SAndroid Build Coastguard Worker    srcs = [
1339*6777b538SAndroid Build Coastguard Worker        "Protobuf.podspec",
1340*6777b538SAndroid Build Coastguard Worker    ],
1341*6777b538SAndroid Build Coastguard Worker    visibility = ["//pkg:__pkg__"],
1342*6777b538SAndroid Build Coastguard Worker)
1343*6777b538SAndroid Build Coastguard Worker
1344*6777b538SAndroid Build Coastguard Worker# Python runtime
1345*6777b538SAndroid Build Coastguard Workerpkg_files(
1346*6777b538SAndroid Build Coastguard Worker    name = "python_dist_files",
1347*6777b538SAndroid Build Coastguard Worker    srcs = glob([
1348*6777b538SAndroid Build Coastguard Worker        "python/google/**/*.proto",
1349*6777b538SAndroid Build Coastguard Worker        "python/google/**/*.py",
1350*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/internal/*.cc",
1351*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/pyext/*.cc",
1352*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/pyext/*.h",
1353*6777b538SAndroid Build Coastguard Worker    ]) + [
1354*6777b538SAndroid Build Coastguard Worker        "python/MANIFEST.in",
1355*6777b538SAndroid Build Coastguard Worker        "python/README.md",
1356*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/proto_api.h",
1357*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/pyext/README",
1358*6777b538SAndroid Build Coastguard Worker        "python/google/protobuf/python_protobuf.h",
1359*6777b538SAndroid Build Coastguard Worker        "python/mox.py",
1360*6777b538SAndroid Build Coastguard Worker        "python/release.sh",
1361*6777b538SAndroid Build Coastguard Worker        "python/setup.cfg",
1362*6777b538SAndroid Build Coastguard Worker        "python/setup.py",
1363*6777b538SAndroid Build Coastguard Worker        "python/stubout.py",
1364*6777b538SAndroid Build Coastguard Worker        "python/tox.ini",
1365*6777b538SAndroid Build Coastguard Worker    ],
1366*6777b538SAndroid Build Coastguard Worker    strip_prefix = strip_prefix.from_root(""),
1367*6777b538SAndroid Build Coastguard Worker    visibility = ["//pkg:__pkg__"],
1368*6777b538SAndroid Build Coastguard Worker)
1369