2
2
3
3
licenses (["notice" ])
4
4
5
+ ################################################################################
6
+ # Protobuf Runtime Library
7
+ ################################################################################
8
+
5
9
COPTS = [
6
10
"-DHAVE_PTHREAD" ,
7
11
"-Wall" ,
@@ -109,6 +113,34 @@ cc_library(
109
113
deps = [":protobuf_lite" ],
110
114
)
111
115
116
+ objc_library (
117
+ name = "protobuf_objc" ,
118
+ hdrs = ["objectivec/GPBProtocolBuffers.h" ],
119
+ includes = ["objectivec" ],
120
+ non_arc_srcs = ["objectivec/GPBProtocolBuffers.m" ],
121
+ visibility = ["//visibility:public" ],
122
+ )
123
+
124
+ WELL_KNOWN_PROTOS = [
125
+ # AUTOGEN(well_known_protos)
126
+ "google/protobuf/any.proto" ,
127
+ "google/protobuf/api.proto" ,
128
+ "google/protobuf/compiler/plugin.proto" ,
129
+ "google/protobuf/descriptor.proto" ,
130
+ "google/protobuf/duration.proto" ,
131
+ "google/protobuf/empty.proto" ,
132
+ "google/protobuf/field_mask.proto" ,
133
+ "google/protobuf/source_context.proto" ,
134
+ "google/protobuf/struct.proto" ,
135
+ "google/protobuf/timestamp.proto" ,
136
+ "google/protobuf/type.proto" ,
137
+ "google/protobuf/wrappers.proto" ,
138
+ ]
139
+
140
+ ################################################################################
141
+ # Protocol Buffers Compiler
142
+ ################################################################################
143
+
112
144
cc_library (
113
145
name = "protoc_lib" ,
114
146
srcs = [
@@ -216,22 +248,6 @@ cc_binary(
216
248
deps = [":protoc_lib" ],
217
249
)
218
250
219
- WELL_KNOWN_PROTOS = [
220
- # AUTOGEN(well_known_protos)
221
- "google/protobuf/any.proto" ,
222
- "google/protobuf/api.proto" ,
223
- "google/protobuf/compiler/plugin.proto" ,
224
- "google/protobuf/descriptor.proto" ,
225
- "google/protobuf/duration.proto" ,
226
- "google/protobuf/empty.proto" ,
227
- "google/protobuf/field_mask.proto" ,
228
- "google/protobuf/source_context.proto" ,
229
- "google/protobuf/struct.proto" ,
230
- "google/protobuf/timestamp.proto" ,
231
- "google/protobuf/type.proto" ,
232
- "google/protobuf/wrappers.proto" ,
233
- ]
234
-
235
251
################################################################################
236
252
# Tests
237
253
################################################################################
@@ -286,11 +302,13 @@ PROTOS = LITE_TEST_PROTOS + TEST_PROTOS
286
302
287
303
INPUTS = PROTOS + WELL_KNOWN_PROTOS
288
304
305
+ OUTPUTS = ["src/" + x [:- 5 ] + "pb.h" for x in PROTOS ] + \
306
+ ["src/" + x [:- 5 ] + "pb.cc" for x in PROTOS ]
307
+
289
308
genrule (
290
309
name = "gen_test_protos" ,
291
310
srcs = ["src/" + x for x in INPUTS ],
292
- outs = ["src/" + x [:- 5 ] + "pb.h" for x in PROTOS ] +
293
- ["src/" + x [:- 5 ] + "pb.cc" for x in PROTOS ],
311
+ outs = OUTPUTS ,
294
312
cmd =
295
313
"$(location :protoc) --cpp_out=$(@D)/src" +
296
314
"" .join ([" -I" + x + "=$(location src/" + x + ")" for x in INPUTS ]) +
@@ -307,78 +325,98 @@ COMMON_TEST_SRCS = [
307
325
"src/google/protobuf/testing/googletest.cc" ,
308
326
]
309
327
310
- # TODO(liujisi): Add gtest dependency and enable tests.
311
- # cc_test(
312
- # name = "protobuf_test",
313
- # srcs = OUTPUTS + COMMON_TEST_SRCS + [
314
- # "src/google/protobuf/any_test.cc",
315
- # "src/google/protobuf/arena_unittest.cc",
316
- # "src/google/protobuf/arenastring_unittest.cc",
317
- # "src/google/protobuf/compiler/command_line_interface_unittest.cc",
318
- # "src/google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc",
319
- # "src/google/protobuf/compiler/cpp/cpp_plugin_unittest.cc",
320
- # "src/google/protobuf/compiler/cpp/cpp_unittest.cc",
321
- # "src/google/protobuf/compiler/csharp/csharp_generator_unittest.cc",
322
- # "src/google/protobuf/compiler/importer_unittest.cc",
323
- # "src/google/protobuf/compiler/java/java_doc_comment_unittest.cc",
324
- # "src/google/protobuf/compiler/java/java_plugin_unittest.cc",
325
- # "src/google/protobuf/compiler/mock_code_generator.cc",
326
- # "src/google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc",
327
- # "src/google/protobuf/compiler/parser_unittest.cc",
328
- # "src/google/protobuf/compiler/python/python_plugin_unittest.cc",
329
- # "src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc",
330
- # "src/google/protobuf/descriptor_database_unittest.cc",
331
- # "src/google/protobuf/descriptor_unittest.cc",
332
- # "src/google/protobuf/drop_unknown_fields_test.cc",
333
- # "src/google/protobuf/dynamic_message_unittest.cc",
334
- # "src/google/protobuf/extension_set_unittest.cc",
335
- # "src/google/protobuf/generated_message_reflection_unittest.cc",
336
- # "src/google/protobuf/io/coded_stream_unittest.cc",
337
- # "src/google/protobuf/io/printer_unittest.cc",
338
- # "src/google/protobuf/io/tokenizer_unittest.cc",
339
- # "src/google/protobuf/io/zero_copy_stream_unittest.cc",
340
- # "src/google/protobuf/map_field_test.cc",
341
- # "src/google/protobuf/map_test.cc",
342
- # "src/google/protobuf/message_unittest.cc",
343
- # "src/google/protobuf/no_field_presence_test.cc",
344
- # "src/google/protobuf/preserve_unknown_enum_test.cc",
345
- # "src/google/protobuf/proto3_arena_unittest.cc",
346
- # "src/google/protobuf/reflection_ops_unittest.cc",
347
- # "src/google/protobuf/repeated_field_reflection_unittest.cc",
348
- # "src/google/protobuf/repeated_field_unittest.cc",
349
- # "src/google/protobuf/stubs/bytestream_unittest.cc",
350
- # "src/google/protobuf/stubs/common_unittest.cc",
351
- # "src/google/protobuf/stubs/once_unittest.cc",
352
- # "src/google/protobuf/stubs/status_test.cc",
353
- # "src/google/protobuf/stubs/statusor_test.cc",
354
- # "src/google/protobuf/stubs/stringpiece_unittest.cc",
355
- # "src/google/protobuf/stubs/stringprintf_unittest.cc",
356
- # "src/google/protobuf/stubs/structurally_valid_unittest.cc",
357
- # "src/google/protobuf/stubs/strutil_unittest.cc",
358
- # "src/google/protobuf/stubs/template_util_unittest.cc",
359
- # "src/google/protobuf/stubs/time_test.cc",
360
- # "src/google/protobuf/stubs/type_traits_unittest.cc",
361
- # "src/google/protobuf/text_format_unittest.cc",
362
- # "src/google/protobuf/unknown_field_set_unittest.cc",
363
- # "src/google/protobuf/util/field_comparator_test.cc",
364
- # "src/google/protobuf/util/internal/default_value_objectwriter_test.cc",
365
- # "src/google/protobuf/util/internal/json_objectwriter_test.cc",
366
- # "src/google/protobuf/util/internal/json_stream_parser_test.cc",
367
- # "src/google/protobuf/util/internal/protostream_objectsource_test.cc",
368
- # "src/google/protobuf/util/internal/protostream_objectwriter_test.cc",
369
- # "src/google/protobuf/util/internal/type_info_test_helper.cc",
370
- # "src/google/protobuf/util/json_util_test.cc",
371
- # "src/google/protobuf/util/type_resolver_util_test.cc",
372
- # "src/google/protobuf/well_known_types_unittest.cc",
373
- # "src/google/protobuf/wire_format_unittest.cc",
374
- # ],
375
- # copts = COPTS,
376
- # includes = [
377
- # "src/",
378
- # ],
379
- # linkopts = LINK_OPTS,
380
- # deps = [
381
- # ":protobuf",
382
- # ":protoc_lib",
383
- # ],
384
- # )
328
+ cc_binary (
329
+ name = "test_plugin" ,
330
+ srcs = [
331
+ # AUTOGEN(test_plugin_srcs)
332
+ "src/google/protobuf/compiler/mock_code_generator.cc" ,
333
+ "src/google/protobuf/compiler/test_plugin.cc" ,
334
+ "src/google/protobuf/testing/file.cc" ,
335
+ ],
336
+ deps = [
337
+ ":protobuf" ,
338
+ ":protoc_lib" ,
339
+ "//external:gtest" ,
340
+ ],
341
+ )
342
+
343
+ cc_test (
344
+ name = "protobuf_test" ,
345
+ srcs = OUTPUTS + COMMON_TEST_SRCS + [
346
+ # AUTOGEN(test_srcs)
347
+ "src/google/protobuf/any_test.cc" ,
348
+ "src/google/protobuf/arena_unittest.cc" ,
349
+ "src/google/protobuf/arenastring_unittest.cc" ,
350
+ "src/google/protobuf/compiler/command_line_interface_unittest.cc" ,
351
+ "src/google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc" ,
352
+ "src/google/protobuf/compiler/cpp/cpp_plugin_unittest.cc" ,
353
+ "src/google/protobuf/compiler/cpp/cpp_unittest.cc" ,
354
+ "src/google/protobuf/compiler/csharp/csharp_generator_unittest.cc" ,
355
+ "src/google/protobuf/compiler/importer_unittest.cc" ,
356
+ "src/google/protobuf/compiler/java/java_doc_comment_unittest.cc" ,
357
+ "src/google/protobuf/compiler/java/java_plugin_unittest.cc" ,
358
+ "src/google/protobuf/compiler/mock_code_generator.cc" ,
359
+ "src/google/protobuf/compiler/objectivec/objectivec_helpers_unittest.cc" ,
360
+ "src/google/protobuf/compiler/parser_unittest.cc" ,
361
+ "src/google/protobuf/compiler/python/python_plugin_unittest.cc" ,
362
+ "src/google/protobuf/compiler/ruby/ruby_generator_unittest.cc" ,
363
+ "src/google/protobuf/descriptor_database_unittest.cc" ,
364
+ "src/google/protobuf/descriptor_unittest.cc" ,
365
+ "src/google/protobuf/drop_unknown_fields_test.cc" ,
366
+ "src/google/protobuf/dynamic_message_unittest.cc" ,
367
+ "src/google/protobuf/extension_set_unittest.cc" ,
368
+ "src/google/protobuf/generated_message_reflection_unittest.cc" ,
369
+ "src/google/protobuf/io/coded_stream_unittest.cc" ,
370
+ "src/google/protobuf/io/printer_unittest.cc" ,
371
+ "src/google/protobuf/io/tokenizer_unittest.cc" ,
372
+ "src/google/protobuf/io/zero_copy_stream_unittest.cc" ,
373
+ "src/google/protobuf/map_field_test.cc" ,
374
+ "src/google/protobuf/map_test.cc" ,
375
+ "src/google/protobuf/message_unittest.cc" ,
376
+ "src/google/protobuf/no_field_presence_test.cc" ,
377
+ "src/google/protobuf/preserve_unknown_enum_test.cc" ,
378
+ "src/google/protobuf/proto3_arena_unittest.cc" ,
379
+ "src/google/protobuf/reflection_ops_unittest.cc" ,
380
+ "src/google/protobuf/repeated_field_reflection_unittest.cc" ,
381
+ "src/google/protobuf/repeated_field_unittest.cc" ,
382
+ "src/google/protobuf/stubs/bytestream_unittest.cc" ,
383
+ "src/google/protobuf/stubs/common_unittest.cc" ,
384
+ "src/google/protobuf/stubs/once_unittest.cc" ,
385
+ "src/google/protobuf/stubs/status_test.cc" ,
386
+ "src/google/protobuf/stubs/statusor_test.cc" ,
387
+ "src/google/protobuf/stubs/stringpiece_unittest.cc" ,
388
+ "src/google/protobuf/stubs/stringprintf_unittest.cc" ,
389
+ "src/google/protobuf/stubs/structurally_valid_unittest.cc" ,
390
+ "src/google/protobuf/stubs/strutil_unittest.cc" ,
391
+ "src/google/protobuf/stubs/template_util_unittest.cc" ,
392
+ "src/google/protobuf/stubs/time_test.cc" ,
393
+ "src/google/protobuf/stubs/type_traits_unittest.cc" ,
394
+ "src/google/protobuf/text_format_unittest.cc" ,
395
+ "src/google/protobuf/unknown_field_set_unittest.cc" ,
396
+ "src/google/protobuf/util/field_comparator_test.cc" ,
397
+ "src/google/protobuf/util/internal/default_value_objectwriter_test.cc" ,
398
+ "src/google/protobuf/util/internal/json_objectwriter_test.cc" ,
399
+ "src/google/protobuf/util/internal/json_stream_parser_test.cc" ,
400
+ "src/google/protobuf/util/internal/protostream_objectsource_test.cc" ,
401
+ "src/google/protobuf/util/internal/protostream_objectwriter_test.cc" ,
402
+ "src/google/protobuf/util/internal/type_info_test_helper.cc" ,
403
+ "src/google/protobuf/util/json_util_test.cc" ,
404
+ "src/google/protobuf/util/type_resolver_util_test.cc" ,
405
+ "src/google/protobuf/well_known_types_unittest.cc" ,
406
+ "src/google/protobuf/wire_format_unittest.cc" ,
407
+ ],
408
+ copts = COPTS ,
409
+ data = [
410
+ ":test_plugin" ,
411
+ ],
412
+ includes = [
413
+ "src/" ,
414
+ ],
415
+ linkopts = LINK_OPTS ,
416
+ deps = [
417
+ ":protobuf" ,
418
+ ":protoc_lib" ,
419
+ "//external:gtest_main" ,
420
+ ],
421
+ )
422
+
0 commit comments