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