xref: /aosp_15_r20/external/openscreen/third_party/protobuf/BUILD.gn (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1# Copyright 2019 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4#
5# NOTE: this BUILD.gn is based heavily on Chrome's, however it does require
6# modification to work properly. When updating, try doing a diff with the
7# new version of the Chrome BUILD.gn if you see build errors.
8
9import("//build_overrides/build.gni")
10
11config("protobuf_config") {
12  include_dirs = [ "src/src" ]
13  defines = [
14    "GOOGLE_PROTOBUF_NO_RTTI",
15    "GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
16    "HAVE_PTHREAD",
17  ]
18}
19
20config("protobuf_warnings") {
21  cflags_cc = [
22    "-Wno-sign-compare",
23    "-Wno-deprecated-declarations",
24    "-Wno-unused-function",
25  ]
26  if (is_clang) {
27    cflags_cc += [
28      "-Wno-exit-time-destructors",
29      "-Wno-extra-semi",
30      "-Wno-unneeded-internal-declaration",
31      "-Wno-unused-private-field",
32      "-Wno-inconsistent-missing-override",
33    ]
34  }
35
36  if (is_gcc) {
37    cflags_cc += [
38      "-Wno-stringop-overflow",
39      "-Wno-array-bounds",
40    ]
41  }
42}
43
44# This config should be applied to targets using generated code from the proto
45# compiler. It sets up the include directories properly.
46config("using_proto") {
47  include_dirs = [
48    "src/src",
49    "$root_gen_dir",
50  ]
51}
52
53config("allow_deprecated_proto_fields") {
54  if (is_clang) {
55    cflags = [ "-Wno-deprecated-declarations" ]
56  }
57}
58
59lite_sources = [
60  "src/src/google/protobuf/any_lite.cc",
61  "src/src/google/protobuf/arena.cc",
62  "src/src/google/protobuf/arena.h",
63  "src/src/google/protobuf/arena_impl.h",
64  "src/src/google/protobuf/arenastring.cc",
65  "src/src/google/protobuf/arenastring.h",
66  "src/src/google/protobuf/extension_set.cc",
67  "src/src/google/protobuf/extension_set.h",
68  "src/src/google/protobuf/generated_enum_util.cc",
69  "src/src/google/protobuf/generated_enum_util.h",
70  "src/src/google/protobuf/generated_message_table_driven_lite.cc",
71  "src/src/google/protobuf/generated_message_table_driven_lite.h",
72  "src/src/google/protobuf/generated_message_util.cc",
73  "src/src/google/protobuf/generated_message_util.h",
74  "src/src/google/protobuf/has_bits.h",
75  "src/src/google/protobuf/implicit_weak_message.cc",
76  "src/src/google/protobuf/implicit_weak_message.h",
77  "src/src/google/protobuf/io/coded_stream.cc",
78  "src/src/google/protobuf/io/coded_stream.h",
79  "src/src/google/protobuf/io/io_win32.cc",
80  "src/src/google/protobuf/io/io_win32.h",
81  "src/src/google/protobuf/io/strtod.cc",
82  "src/src/google/protobuf/io/strtod.h",
83  "src/src/google/protobuf/io/zero_copy_stream.cc",
84  "src/src/google/protobuf/io/zero_copy_stream.h",
85  "src/src/google/protobuf/io/zero_copy_stream_impl.cc",
86  "src/src/google/protobuf/io/zero_copy_stream_impl.h",
87  "src/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
88  "src/src/google/protobuf/io/zero_copy_stream_impl_lite.h",
89  "src/src/google/protobuf/map.cc",
90  "src/src/google/protobuf/map.h",
91  "src/src/google/protobuf/map_entry_lite.h",
92  "src/src/google/protobuf/map_field_lite.h",
93  "src/src/google/protobuf/map_type_handler.h",
94  "src/src/google/protobuf/message_lite.cc",
95  "src/src/google/protobuf/message_lite.h",
96  "src/src/google/protobuf/parse_context.cc",
97  "src/src/google/protobuf/parse_context.h",
98  "src/src/google/protobuf/repeated_field.cc",
99  "src/src/google/protobuf/repeated_field.h",
100  "src/src/google/protobuf/stubs/bytestream.cc",
101  "src/src/google/protobuf/stubs/bytestream.h",
102  "src/src/google/protobuf/stubs/callback.h",
103  "src/src/google/protobuf/stubs/casts.h",
104  "src/src/google/protobuf/stubs/common.cc",
105  "src/src/google/protobuf/stubs/common.h",
106  "src/src/google/protobuf/stubs/hash.h",
107  "src/src/google/protobuf/stubs/int128.cc",
108  "src/src/google/protobuf/stubs/int128.h",
109  "src/src/google/protobuf/stubs/logging.h",
110  "src/src/google/protobuf/stubs/macros.h",
111  "src/src/google/protobuf/stubs/map_util.h",
112  "src/src/google/protobuf/stubs/mutex.h",
113  "src/src/google/protobuf/stubs/once.h",
114  "src/src/google/protobuf/stubs/platform_macros.h",
115  "src/src/google/protobuf/stubs/port.h",
116  "src/src/google/protobuf/stubs/status.cc",
117  "src/src/google/protobuf/stubs/status.h",
118  "src/src/google/protobuf/stubs/status_macros.h",
119  "src/src/google/protobuf/stubs/statusor.cc",
120  "src/src/google/protobuf/stubs/statusor.h",
121  "src/src/google/protobuf/stubs/stl_util.h",
122  "src/src/google/protobuf/stubs/stringpiece.cc",
123  "src/src/google/protobuf/stubs/stringpiece.h",
124  "src/src/google/protobuf/stubs/stringprintf.cc",
125  "src/src/google/protobuf/stubs/stringprintf.h",
126  "src/src/google/protobuf/stubs/structurally_valid.cc",
127  "src/src/google/protobuf/stubs/strutil.cc",
128  "src/src/google/protobuf/stubs/strutil.h",
129  "src/src/google/protobuf/stubs/template_util.h",
130  "src/src/google/protobuf/stubs/time.cc",
131  "src/src/google/protobuf/stubs/time.h",
132  "src/src/google/protobuf/wire_format_lite.cc",
133  "src/src/google/protobuf/wire_format_lite.h",
134]
135
136source_set("protobuf_lite") {
137  sources = lite_sources
138
139  configs += [ ":protobuf_warnings" ]
140  public_configs = [ ":protobuf_config" ]
141}
142
143# This is the full, heavy protobuf lib that's needed for c++ .protos that don't
144# specify the LITE_RUNTIME option. The protocol compiler itself (protoc) falls
145# into that category. Do not use in Chrome code.
146static_library("protobuf_full") {
147  sources =
148      lite_sources + [
149        "src/src/google/protobuf/any.cc",
150        "src/src/google/protobuf/any.h",
151        "src/src/google/protobuf/any.pb.cc",
152        "src/src/google/protobuf/any.pb.h",
153        "src/src/google/protobuf/api.pb.cc",
154        "src/src/google/protobuf/api.pb.h",
155        "src/src/google/protobuf/compiler/importer.cc",
156        "src/src/google/protobuf/compiler/importer.h",
157        "src/src/google/protobuf/compiler/parser.cc",
158        "src/src/google/protobuf/compiler/parser.h",
159        "src/src/google/protobuf/descriptor.cc",
160        "src/src/google/protobuf/descriptor.h",
161        "src/src/google/protobuf/descriptor.pb.cc",
162        "src/src/google/protobuf/descriptor.pb.h",
163        "src/src/google/protobuf/descriptor_database.cc",
164        "src/src/google/protobuf/descriptor_database.h",
165        "src/src/google/protobuf/duration.pb.cc",
166        "src/src/google/protobuf/duration.pb.h",
167        "src/src/google/protobuf/dynamic_message.cc",
168        "src/src/google/protobuf/dynamic_message.h",
169        "src/src/google/protobuf/empty.pb.cc",
170        "src/src/google/protobuf/empty.pb.h",
171        "src/src/google/protobuf/extension_set_heavy.cc",
172        "src/src/google/protobuf/field_mask.pb.cc",
173        "src/src/google/protobuf/field_mask.pb.h",
174        "src/src/google/protobuf/generated_enum_reflection.h",
175        "src/src/google/protobuf/generated_message_reflection.cc",
176        "src/src/google/protobuf/generated_message_reflection.h",
177        "src/src/google/protobuf/io/gzip_stream.cc",
178        "src/src/google/protobuf/io/gzip_stream.h",
179        "src/src/google/protobuf/io/printer.cc",
180        "src/src/google/protobuf/io/printer.h",
181        "src/src/google/protobuf/io/tokenizer.cc",
182        "src/src/google/protobuf/io/tokenizer.h",
183        "src/src/google/protobuf/map_entry.h",
184        "src/src/google/protobuf/map_field.cc",
185        "src/src/google/protobuf/map_field.h",
186        "src/src/google/protobuf/map_field_inl.h",
187        "src/src/google/protobuf/message.cc",
188        "src/src/google/protobuf/message.h",
189        "src/src/google/protobuf/metadata.h",
190        "src/src/google/protobuf/reflection.h",
191        "src/src/google/protobuf/reflection_internal.h",
192        "src/src/google/protobuf/reflection_ops.cc",
193        "src/src/google/protobuf/reflection_ops.h",
194        "src/src/google/protobuf/service.cc",
195        "src/src/google/protobuf/service.h",
196        "src/src/google/protobuf/source_context.pb.cc",
197        "src/src/google/protobuf/source_context.pb.h",
198        "src/src/google/protobuf/struct.pb.cc",
199        "src/src/google/protobuf/struct.pb.h",
200        "src/src/google/protobuf/stubs/mathutil.h",
201        "src/src/google/protobuf/stubs/substitute.cc",
202        "src/src/google/protobuf/stubs/substitute.h",
203        "src/src/google/protobuf/text_format.cc",
204        "src/src/google/protobuf/text_format.h",
205        "src/src/google/protobuf/timestamp.pb.cc",
206        "src/src/google/protobuf/timestamp.pb.h",
207        "src/src/google/protobuf/type.pb.cc",
208        "src/src/google/protobuf/type.pb.h",
209        "src/src/google/protobuf/unknown_field_set.cc",
210        "src/src/google/protobuf/unknown_field_set.h",
211        "src/src/google/protobuf/util/field_comparator.cc",
212        "src/src/google/protobuf/util/field_comparator.h",
213        "src/src/google/protobuf/util/field_mask_util.cc",
214        "src/src/google/protobuf/util/field_mask_util.h",
215        "src/src/google/protobuf/util/internal/constants.h",
216        "src/src/google/protobuf/util/internal/datapiece.cc",
217        "src/src/google/protobuf/util/internal/datapiece.h",
218        "src/src/google/protobuf/util/internal/default_value_objectwriter.cc",
219        "src/src/google/protobuf/util/internal/default_value_objectwriter.h",
220        "src/src/google/protobuf/util/internal/error_listener.cc",
221        "src/src/google/protobuf/util/internal/error_listener.h",
222        "src/src/google/protobuf/util/internal/field_mask_utility.cc",
223        "src/src/google/protobuf/util/internal/field_mask_utility.h",
224        "src/src/google/protobuf/util/internal/json_escaping.cc",
225        "src/src/google/protobuf/util/internal/json_escaping.h",
226        "src/src/google/protobuf/util/internal/json_objectwriter.cc",
227        "src/src/google/protobuf/util/internal/json_objectwriter.h",
228        "src/src/google/protobuf/util/internal/json_stream_parser.cc",
229        "src/src/google/protobuf/util/internal/json_stream_parser.h",
230        "src/src/google/protobuf/util/internal/location_tracker.h",
231        "src/src/google/protobuf/util/internal/object_location_tracker.h",
232        "src/src/google/protobuf/util/internal/object_source.h",
233        "src/src/google/protobuf/util/internal/object_writer.cc",
234        "src/src/google/protobuf/util/internal/object_writer.h",
235        "src/src/google/protobuf/util/internal/proto_writer.cc",
236        "src/src/google/protobuf/util/internal/proto_writer.h",
237        "src/src/google/protobuf/util/internal/protostream_objectsource.cc",
238        "src/src/google/protobuf/util/internal/protostream_objectsource.h",
239        "src/src/google/protobuf/util/internal/protostream_objectwriter.cc",
240        "src/src/google/protobuf/util/internal/protostream_objectwriter.h",
241        "src/src/google/protobuf/util/internal/structured_objectwriter.h",
242        "src/src/google/protobuf/util/internal/type_info.cc",
243        "src/src/google/protobuf/util/internal/type_info.h",
244        "src/src/google/protobuf/util/internal/type_info_test_helper.cc",
245        "src/src/google/protobuf/util/internal/type_info_test_helper.h",
246        "src/src/google/protobuf/util/internal/utility.cc",
247        "src/src/google/protobuf/util/internal/utility.h",
248        "src/src/google/protobuf/util/json_util.cc",
249        "src/src/google/protobuf/util/json_util.h",
250        "src/src/google/protobuf/util/message_differencer.cc",
251        "src/src/google/protobuf/util/message_differencer.h",
252        "src/src/google/protobuf/util/time_util.cc",
253        "src/src/google/protobuf/util/time_util.h",
254        "src/src/google/protobuf/util/type_resolver.h",
255        "src/src/google/protobuf/util/type_resolver_util.cc",
256        "src/src/google/protobuf/util/type_resolver_util.h",
257        "src/src/google/protobuf/wire_format.cc",
258        "src/src/google/protobuf/wire_format.h",
259        "src/src/google/protobuf/wrappers.pb.cc",
260        "src/src/google/protobuf/wrappers.pb.h",
261      ]
262
263  deps = [ "../zlib" ]
264
265  configs += [
266    ":protobuf_warnings",
267    "../zlib:zlib_config",
268  ]
269  public_configs = [ ":protobuf_config" ]
270
271  defines = [ "HAVE_ZLIB" ]
272
273  visibility = [
274    ":protoc_lib",
275    "../chromium_quic/src/third_party:quic_trace",
276    "//third_party/libprotobuf-mutator:*",
277  ]
278}
279
280# Only compile the compiler for the host architecture.
281if (current_toolchain == host_toolchain) {
282  # protoc compiler is separated into protoc library and executable targets to
283  # support protoc plugins that need to link libprotoc, but not the main()
284  # itself. See src/google/protobuf/compiler/plugin.h
285  static_library("protoc_lib") {
286    sources = [
287      "src/src/google/protobuf/compiler/code_generator.cc",
288      "src/src/google/protobuf/compiler/code_generator.h",
289      "src/src/google/protobuf/compiler/command_line_interface.cc",
290      "src/src/google/protobuf/compiler/command_line_interface.h",
291      "src/src/google/protobuf/compiler/cpp/cpp_enum.cc",
292      "src/src/google/protobuf/compiler/cpp/cpp_enum.h",
293      "src/src/google/protobuf/compiler/cpp/cpp_enum_field.cc",
294      "src/src/google/protobuf/compiler/cpp/cpp_enum_field.h",
295      "src/src/google/protobuf/compiler/cpp/cpp_extension.cc",
296      "src/src/google/protobuf/compiler/cpp/cpp_extension.h",
297      "src/src/google/protobuf/compiler/cpp/cpp_field.cc",
298      "src/src/google/protobuf/compiler/cpp/cpp_field.h",
299      "src/src/google/protobuf/compiler/cpp/cpp_file.cc",
300      "src/src/google/protobuf/compiler/cpp/cpp_file.h",
301      "src/src/google/protobuf/compiler/cpp/cpp_generator.cc",
302      "src/src/google/protobuf/compiler/cpp/cpp_generator.h",
303      "src/src/google/protobuf/compiler/cpp/cpp_helpers.cc",
304      "src/src/google/protobuf/compiler/cpp/cpp_helpers.h",
305      "src/src/google/protobuf/compiler/cpp/cpp_map_field.cc",
306      "src/src/google/protobuf/compiler/cpp/cpp_map_field.h",
307      "src/src/google/protobuf/compiler/cpp/cpp_message.cc",
308      "src/src/google/protobuf/compiler/cpp/cpp_message.h",
309      "src/src/google/protobuf/compiler/cpp/cpp_message_field.cc",
310      "src/src/google/protobuf/compiler/cpp/cpp_message_field.h",
311      "src/src/google/protobuf/compiler/cpp/cpp_message_layout_helper.h",
312      "src/src/google/protobuf/compiler/cpp/cpp_options.h",
313      "src/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc",
314      "src/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.h",
315      "src/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.cc",
316      "src/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.h",
317      "src/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
318      "src/src/google/protobuf/compiler/cpp/cpp_primitive_field.h",
319      "src/src/google/protobuf/compiler/cpp/cpp_service.cc",
320      "src/src/google/protobuf/compiler/cpp/cpp_service.h",
321      "src/src/google/protobuf/compiler/cpp/cpp_string_field.cc",
322      "src/src/google/protobuf/compiler/cpp/cpp_string_field.h",
323      "src/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc",
324      "src/src/google/protobuf/compiler/csharp/csharp_doc_comment.h",
325      "src/src/google/protobuf/compiler/csharp/csharp_enum.cc",
326      "src/src/google/protobuf/compiler/csharp/csharp_enum.h",
327      "src/src/google/protobuf/compiler/csharp/csharp_enum_field.cc",
328      "src/src/google/protobuf/compiler/csharp/csharp_enum_field.h",
329      "src/src/google/protobuf/compiler/csharp/csharp_field_base.cc",
330      "src/src/google/protobuf/compiler/csharp/csharp_field_base.h",
331      "src/src/google/protobuf/compiler/csharp/csharp_generator.cc",
332      "src/src/google/protobuf/compiler/csharp/csharp_generator.h",
333      "src/src/google/protobuf/compiler/csharp/csharp_helpers.cc",
334      "src/src/google/protobuf/compiler/csharp/csharp_helpers.h",
335      "src/src/google/protobuf/compiler/csharp/csharp_map_field.cc",
336      "src/src/google/protobuf/compiler/csharp/csharp_map_field.h",
337      "src/src/google/protobuf/compiler/csharp/csharp_message.cc",
338      "src/src/google/protobuf/compiler/csharp/csharp_message.h",
339      "src/src/google/protobuf/compiler/csharp/csharp_message_field.cc",
340      "src/src/google/protobuf/compiler/csharp/csharp_message_field.h",
341      "src/src/google/protobuf/compiler/csharp/csharp_options.h",
342      "src/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
343      "src/src/google/protobuf/compiler/csharp/csharp_primitive_field.h",
344      "src/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc",
345      "src/src/google/protobuf/compiler/csharp/csharp_reflection_class.h",
346      "src/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
347      "src/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h",
348      "src/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
349      "src/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.h",
350      "src/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
351      "src/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h",
352      "src/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc",
353      "src/src/google/protobuf/compiler/csharp/csharp_source_generator_base.h",
354      "src/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
355      "src/src/google/protobuf/compiler/csharp/csharp_wrapper_field.h",
356      "src/src/google/protobuf/compiler/java/java_context.cc",
357      "src/src/google/protobuf/compiler/java/java_context.h",
358      "src/src/google/protobuf/compiler/java/java_doc_comment.cc",
359      "src/src/google/protobuf/compiler/java/java_doc_comment.h",
360      "src/src/google/protobuf/compiler/java/java_enum.cc",
361      "src/src/google/protobuf/compiler/java/java_enum.h",
362      "src/src/google/protobuf/compiler/java/java_enum_field.cc",
363      "src/src/google/protobuf/compiler/java/java_enum_field.h",
364      "src/src/google/protobuf/compiler/java/java_enum_field_lite.cc",
365      "src/src/google/protobuf/compiler/java/java_enum_field_lite.h",
366      "src/src/google/protobuf/compiler/java/java_enum_lite.cc",
367      "src/src/google/protobuf/compiler/java/java_enum_lite.h",
368      "src/src/google/protobuf/compiler/java/java_extension.cc",
369      "src/src/google/protobuf/compiler/java/java_extension.h",
370      "src/src/google/protobuf/compiler/java/java_extension_lite.cc",
371      "src/src/google/protobuf/compiler/java/java_extension_lite.h",
372      "src/src/google/protobuf/compiler/java/java_field.cc",
373      "src/src/google/protobuf/compiler/java/java_field.h",
374      "src/src/google/protobuf/compiler/java/java_file.cc",
375      "src/src/google/protobuf/compiler/java/java_file.h",
376      "src/src/google/protobuf/compiler/java/java_generator.cc",
377      "src/src/google/protobuf/compiler/java/java_generator.h",
378      "src/src/google/protobuf/compiler/java/java_generator_factory.cc",
379      "src/src/google/protobuf/compiler/java/java_generator_factory.h",
380      "src/src/google/protobuf/compiler/java/java_helpers.cc",
381      "src/src/google/protobuf/compiler/java/java_helpers.h",
382      "src/src/google/protobuf/compiler/java/java_kotlin_generator.cc",
383      "src/src/google/protobuf/compiler/java/java_kotlin_generator.h",
384      "src/src/google/protobuf/compiler/java/java_map_field.cc",
385      "src/src/google/protobuf/compiler/java/java_map_field.h",
386      "src/src/google/protobuf/compiler/java/java_map_field_lite.cc",
387      "src/src/google/protobuf/compiler/java/java_map_field_lite.h",
388      "src/src/google/protobuf/compiler/java/java_message.cc",
389      "src/src/google/protobuf/compiler/java/java_message.h",
390      "src/src/google/protobuf/compiler/java/java_message_builder.cc",
391      "src/src/google/protobuf/compiler/java/java_message_builder.h",
392      "src/src/google/protobuf/compiler/java/java_message_builder_lite.cc",
393      "src/src/google/protobuf/compiler/java/java_message_builder_lite.h",
394      "src/src/google/protobuf/compiler/java/java_message_field.cc",
395      "src/src/google/protobuf/compiler/java/java_message_field.h",
396      "src/src/google/protobuf/compiler/java/java_message_field_lite.cc",
397      "src/src/google/protobuf/compiler/java/java_message_field_lite.h",
398      "src/src/google/protobuf/compiler/java/java_message_lite.cc",
399      "src/src/google/protobuf/compiler/java/java_message_lite.h",
400      "src/src/google/protobuf/compiler/java/java_name_resolver.cc",
401      "src/src/google/protobuf/compiler/java/java_name_resolver.h",
402      "src/src/google/protobuf/compiler/java/java_options.h",
403      "src/src/google/protobuf/compiler/java/java_primitive_field.cc",
404      "src/src/google/protobuf/compiler/java/java_primitive_field.h",
405      "src/src/google/protobuf/compiler/java/java_primitive_field_lite.cc",
406      "src/src/google/protobuf/compiler/java/java_primitive_field_lite.h",
407      "src/src/google/protobuf/compiler/java/java_service.cc",
408      "src/src/google/protobuf/compiler/java/java_service.h",
409      "src/src/google/protobuf/compiler/java/java_shared_code_generator.cc",
410      "src/src/google/protobuf/compiler/java/java_shared_code_generator.h",
411      "src/src/google/protobuf/compiler/java/java_string_field.cc",
412      "src/src/google/protobuf/compiler/java/java_string_field.h",
413      "src/src/google/protobuf/compiler/java/java_string_field_lite.cc",
414      "src/src/google/protobuf/compiler/java/java_string_field_lite.h",
415      "src/src/google/protobuf/compiler/js/js_generator.cc",
416      "src/src/google/protobuf/compiler/js/js_generator.h",
417      "src/src/google/protobuf/compiler/js/well_known_types_embed.cc",
418      "src/src/google/protobuf/compiler/js/well_known_types_embed.h",
419      "src/src/google/protobuf/compiler/objectivec/objectivec_enum.cc",
420      "src/src/google/protobuf/compiler/objectivec/objectivec_enum.h",
421      "src/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc",
422      "src/src/google/protobuf/compiler/objectivec/objectivec_enum_field.h",
423      "src/src/google/protobuf/compiler/objectivec/objectivec_extension.cc",
424      "src/src/google/protobuf/compiler/objectivec/objectivec_extension.h",
425      "src/src/google/protobuf/compiler/objectivec/objectivec_field.cc",
426      "src/src/google/protobuf/compiler/objectivec/objectivec_field.h",
427      "src/src/google/protobuf/compiler/objectivec/objectivec_file.cc",
428      "src/src/google/protobuf/compiler/objectivec/objectivec_file.h",
429      "src/src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
430      "src/src/google/protobuf/compiler/objectivec/objectivec_generator.h",
431      "src/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
432      "src/src/google/protobuf/compiler/objectivec/objectivec_helpers.h",
433      "src/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
434      "src/src/google/protobuf/compiler/objectivec/objectivec_map_field.h",
435      "src/src/google/protobuf/compiler/objectivec/objectivec_message.cc",
436      "src/src/google/protobuf/compiler/objectivec/objectivec_message.h",
437      "src/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
438      "src/src/google/protobuf/compiler/objectivec/objectivec_message_field.h",
439      "src/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
440      "src/src/google/protobuf/compiler/objectivec/objectivec_oneof.h",
441      "src/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
442      "src/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h",
443      "src/src/google/protobuf/compiler/php/php_generator.cc",
444      "src/src/google/protobuf/compiler/php/php_generator.h",
445      "src/src/google/protobuf/compiler/plugin.cc",
446      "src/src/google/protobuf/compiler/plugin.h",
447      "src/src/google/protobuf/compiler/plugin.pb.cc",
448      "src/src/google/protobuf/compiler/plugin.pb.h",
449      "src/src/google/protobuf/compiler/python/python_generator.cc",
450      "src/src/google/protobuf/compiler/python/python_generator.h",
451      "src/src/google/protobuf/compiler/ruby/ruby_generator.cc",
452      "src/src/google/protobuf/compiler/ruby/ruby_generator.h",
453      "src/src/google/protobuf/compiler/subprocess.cc",
454      "src/src/google/protobuf/compiler/subprocess.h",
455      "src/src/google/protobuf/compiler/zip_writer.cc",
456      "src/src/google/protobuf/compiler/zip_writer.h",
457    ]
458
459    configs += [ ":protobuf_warnings" ]
460    public_configs = [ ":protobuf_config" ]
461
462    public_deps = [ ":protobuf_full" ]
463  }
464
465  executable("protoc") {
466    sources = [ "src/src/google/protobuf/compiler/main.cc" ]
467
468    deps = [ ":protoc_lib" ]
469
470    configs += [ ":protobuf_warnings" ]
471    public_configs = [ ":protobuf_config" ]
472  }
473}
474