File: BUILD.bazel

package info (click to toggle)
protobuf 3.21.12-15
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 43,408 kB
  • sloc: cpp: 179,373; java: 88,098; objc: 60,661; ansic: 37,810; cs: 28,526; python: 22,565; php: 11,464; ruby: 6,127; sh: 3,635; makefile: 3,341; pascal: 2,352; xml: 2,317; javascript: 311; lisp: 87; awk: 17
file content (471 lines) | stat: -rw-r--r-- 17,042 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
load("@bazel_skylib//rules:build_test.bzl", "build_test")
load("@rules_java//java:defs.bzl", "java_library", "java_lite_proto_library", "java_proto_library")
load("@rules_jvm_external//:defs.bzl", "java_export")
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
load("@rules_proto//proto:defs.bzl", "proto_lang_toolchain", "proto_library")
load("//conformance:defs.bzl", "conformance_test")
load("//:protobuf.bzl", "internal_gen_well_known_protos_java")
load("//:protobuf_version.bzl", "PROTOBUF_JAVA_VERSION")
load("//java/internal:testing.bzl", "junit_tests")

LITE_SRCS = [
    # Keep in sync with `//java/lite:pom.xml`.
    "src/main/java/com/google/protobuf/AbstractMessageLite.java",
    "src/main/java/com/google/protobuf/AbstractParser.java",
    "src/main/java/com/google/protobuf/AbstractProtobufList.java",
    "src/main/java/com/google/protobuf/AllocatedBuffer.java",
    "src/main/java/com/google/protobuf/Android.java",
    "src/main/java/com/google/protobuf/ArrayDecoders.java",
    "src/main/java/com/google/protobuf/BinaryReader.java",
    "src/main/java/com/google/protobuf/BinaryWriter.java",
    "src/main/java/com/google/protobuf/BooleanArrayList.java",
    "src/main/java/com/google/protobuf/BufferAllocator.java",
    "src/main/java/com/google/protobuf/ByteBufferWriter.java",
    "src/main/java/com/google/protobuf/ByteOutput.java",
    "src/main/java/com/google/protobuf/ByteString.java",
    "src/main/java/com/google/protobuf/CanIgnoreReturnValue.java",
    "src/main/java/com/google/protobuf/CheckReturnValue.java",
    "src/main/java/com/google/protobuf/CodedInputStream.java",
    "src/main/java/com/google/protobuf/CodedInputStreamReader.java",
    "src/main/java/com/google/protobuf/CodedOutputStream.java",
    "src/main/java/com/google/protobuf/CodedOutputStreamWriter.java",
    "src/main/java/com/google/protobuf/CompileTimeConstant.java",
    "src/main/java/com/google/protobuf/DoubleArrayList.java",
    "src/main/java/com/google/protobuf/ExperimentalApi.java",
    "src/main/java/com/google/protobuf/ExtensionLite.java",
    "src/main/java/com/google/protobuf/ExtensionRegistryFactory.java",
    "src/main/java/com/google/protobuf/ExtensionRegistryLite.java",
    "src/main/java/com/google/protobuf/ExtensionSchema.java",
    "src/main/java/com/google/protobuf/ExtensionSchemaLite.java",
    "src/main/java/com/google/protobuf/ExtensionSchemas.java",
    "src/main/java/com/google/protobuf/FieldInfo.java",
    "src/main/java/com/google/protobuf/FieldSet.java",
    "src/main/java/com/google/protobuf/FieldType.java",
    "src/main/java/com/google/protobuf/FloatArrayList.java",
    "src/main/java/com/google/protobuf/GeneratedMessageInfoFactory.java",
    "src/main/java/com/google/protobuf/GeneratedMessageLite.java",
    "src/main/java/com/google/protobuf/InlineMe.java",
    "src/main/java/com/google/protobuf/IntArrayList.java",
    "src/main/java/com/google/protobuf/Internal.java",
    "src/main/java/com/google/protobuf/InvalidProtocolBufferException.java",
    "src/main/java/com/google/protobuf/IterableByteBufferInputStream.java",
    "src/main/java/com/google/protobuf/JavaType.java",
    "src/main/java/com/google/protobuf/LazyField.java",
    "src/main/java/com/google/protobuf/LazyFieldLite.java",
    "src/main/java/com/google/protobuf/LazyStringArrayList.java",
    "src/main/java/com/google/protobuf/LazyStringList.java",
    "src/main/java/com/google/protobuf/ListFieldSchema.java",
    "src/main/java/com/google/protobuf/LongArrayList.java",
    "src/main/java/com/google/protobuf/ManifestSchemaFactory.java",
    "src/main/java/com/google/protobuf/MapEntryLite.java",
    "src/main/java/com/google/protobuf/MapFieldLite.java",
    "src/main/java/com/google/protobuf/MapFieldSchema.java",
    "src/main/java/com/google/protobuf/MapFieldSchemaLite.java",
    "src/main/java/com/google/protobuf/MapFieldSchemas.java",
    "src/main/java/com/google/protobuf/MessageInfo.java",
    "src/main/java/com/google/protobuf/MessageInfoFactory.java",
    "src/main/java/com/google/protobuf/MessageLite.java",
    "src/main/java/com/google/protobuf/MessageLiteOrBuilder.java",
    "src/main/java/com/google/protobuf/MessageLiteToString.java",
    "src/main/java/com/google/protobuf/MessageSchema.java",
    "src/main/java/com/google/protobuf/MessageSetSchema.java",
    "src/main/java/com/google/protobuf/MutabilityOracle.java",
    "src/main/java/com/google/protobuf/NewInstanceSchema.java",
    "src/main/java/com/google/protobuf/NewInstanceSchemaLite.java",
    "src/main/java/com/google/protobuf/NewInstanceSchemas.java",
    "src/main/java/com/google/protobuf/NioByteString.java",
    "src/main/java/com/google/protobuf/OneofInfo.java",
    "src/main/java/com/google/protobuf/Parser.java",
    "src/main/java/com/google/protobuf/PrimitiveNonBoxingCollection.java",
    "src/main/java/com/google/protobuf/ProtoSyntax.java",
    "src/main/java/com/google/protobuf/Protobuf.java",
    "src/main/java/com/google/protobuf/ProtobufArrayList.java",
    "src/main/java/com/google/protobuf/ProtobufLists.java",
    "src/main/java/com/google/protobuf/ProtocolStringList.java",
    "src/main/java/com/google/protobuf/RawMessageInfo.java",
    "src/main/java/com/google/protobuf/Reader.java",
    "src/main/java/com/google/protobuf/RopeByteString.java",
    "src/main/java/com/google/protobuf/Schema.java",
    "src/main/java/com/google/protobuf/SchemaFactory.java",
    "src/main/java/com/google/protobuf/SchemaUtil.java",
    "src/main/java/com/google/protobuf/SmallSortedMap.java",
    "src/main/java/com/google/protobuf/StructuralMessageInfo.java",
    "src/main/java/com/google/protobuf/TextFormatEscaper.java",
    "src/main/java/com/google/protobuf/UninitializedMessageException.java",
    "src/main/java/com/google/protobuf/UnknownFieldSchema.java",
    "src/main/java/com/google/protobuf/UnknownFieldSetLite.java",
    "src/main/java/com/google/protobuf/UnknownFieldSetLiteSchema.java",
    "src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java",
    "src/main/java/com/google/protobuf/UnsafeByteOperations.java",
    "src/main/java/com/google/protobuf/UnsafeUtil.java",
    "src/main/java/com/google/protobuf/Utf8.java",
    "src/main/java/com/google/protobuf/WireFormat.java",
    "src/main/java/com/google/protobuf/Writer.java",
]

internal_gen_well_known_protos_java(
    name = "gen_well_known_protos_javalite",
    javalite = True,
    deps = [
        "//:any_proto",
        "//:api_proto",
        "//:duration_proto",
        "//:empty_proto",
        "//:field_mask_proto",
        "//:source_context_proto",
        "//:struct_proto",
        "//:timestamp_proto",
        "//:type_proto",
        "//:wrappers_proto",
    ],
)

# Should be used as `//java/lite`.
java_library(
    name = "lite",
    srcs = LITE_SRCS + [
        ":gen_well_known_protos_javalite",
    ],
    visibility = [
        "//java/lite:__pkg__",
    ],
)

# Bazel users, don't depend on this target, use //java/lite.
java_export(
    name = "lite_mvn",
    maven_coordinates = "com.google.protobuf:protobuf-javalite:%s" % PROTOBUF_JAVA_VERSION,
    pom_template = "//java/lite:pom_template.xml",
    resources = [
        "//:lite_well_known_protos",
    ],
    tags = ["manual"],
    runtime_deps = [":lite"],
)

java_library(
    name = "lite_runtime_only",
    srcs = LITE_SRCS,
)

internal_gen_well_known_protos_java(
    name = "gen_well_known_protos_java",
    deps = [
        "//:any_proto",
        "//:api_proto",
        "//:compiler_plugin_proto",
        "//:descriptor_proto",
        "//:duration_proto",
        "//:empty_proto",
        "//:field_mask_proto",
        "//:source_context_proto",
        "//:struct_proto",
        "//:timestamp_proto",
        "//:type_proto",
        "//:wrappers_proto",
    ],
)

java_library(
    name = "core",
    srcs = glob(
        [
            "src/main/java/com/google/protobuf/*.java",
        ],
        exclude = LITE_SRCS,
    ) + [
        ":gen_well_known_protos_java",
    ],
    visibility = ["//visibility:public"],
    exports = [
        ":lite_runtime_only",
    ],
    deps = [
        ":lite_runtime_only",
    ],
)

# Bazel users, don't depend on this target, use :core.
java_export(
    name = "core_mvn",
    maven_coordinates = "com.google.protobuf:protobuf-java:%s" % PROTOBUF_JAVA_VERSION,
    pom_template = "pom_template.xml",
    resources = [
        "//:built_in_runtime_protos",
        "//:well_known_type_protos",
    ],
    tags = ["manual"],
    runtime_deps = [":core"],
)

filegroup(
    name = "release",
    srcs = [
        ":core_mvn-docs",
        ":core_mvn-maven-source",
        ":core_mvn-pom",
        ":core_mvn-project",
        ":lite_mvn-docs",
        ":lite_mvn-maven-source",
        ":lite_mvn-pom",
        ":lite_mvn-project",
    ],
    visibility = ["//java:__pkg__"],
)

proto_lang_toolchain(
    name = "toolchain",
    # keep this in sync w/ WELL_KNOWN_PROTO_MAP in //:BUILD
    blacklisted_protos = [
        "//:any_proto",
        "//:api_proto",
        "//:compiler_plugin_proto",
        "//:descriptor_proto",
        "//:duration_proto",
        "//:empty_proto",
        "//:field_mask_proto",
        "//:source_context_proto",
        "//:struct_proto",
        "//:timestamp_proto",
        "//:type_proto",
        "//:wrappers_proto",
    ],
    command_line = "--java_out=$(OUT)",
    runtime = ":core",
    visibility = ["//visibility:public"],
)

proto_library(
    name = "java_test_protos",
    srcs = glob(["src/test/proto/**/*.proto"]),
    strip_import_prefix = "src/test/proto",
    deps = [
        "//:any_proto",
        "//:descriptor_proto",
        "//:generic_test_protos",
        "//:wrappers_proto",
    ],
)

java_proto_library(
    name = "generic_test_protos_java_proto",
    visibility = [
        "//java:__subpackages__",
    ],
    deps = ["//:generic_test_protos"],
)

java_proto_library(
    name = "java_test_protos_java_proto",
    deps = [":java_test_protos"],
)

java_library(
    name = "test_util",
    srcs = [
        "src/test/java/com/google/protobuf/TestUtil.java",
        "src/test/java/com/google/protobuf/TestUtilLite.java",
    ],
    visibility = ["//java:__subpackages__"],
    deps = [
        ":core",
        ":generic_test_protos_java_proto",
        ":java_test_protos_java_proto",
        "@maven//:com_google_guava_guava",
        "@maven//:junit_junit",
    ],
)

test_suite(
    name = "tests",
    tests = [
        "conformance_test",
        "core_build_test",
        "core_tests",
        "utf8_tests",
    ],
)

build_test(
    name = "core_build_test",
    targets = [
        ":core",
    ],
)

conformance_test(
    name = "conformance_test",
    failure_list = "//conformance:failure_list_java.txt",
    testee = "//conformance:conformance_java",
    text_format_failure_list = "//conformance:text_format_failure_list_java.txt",
)

junit_tests(
    name = "core_tests",
    size = "small",
    srcs = glob(
        ["src/test/java/**/*.java"],
        exclude = [
            "src/test/java/com/google/protobuf/DecodeUtf8Test.java",
            "src/test/java/com/google/protobuf/IsValidUtf8Test.java",
            "src/test/java/com/google/protobuf/TestUtil.java",
            "src/test/java/com/google/protobuf/TestUtilLite.java",
        ],
    ),
    data = ["//:testdata"],
    deps = [
        ":core",
        ":generic_test_protos_java_proto",
        ":java_test_protos_java_proto",
        ":test_util",
        "@maven//:com_google_guava_guava",
        "@maven//:com_google_truth_truth",
        "@maven//:junit_junit",
        "@maven//:org_mockito_mockito_core",
    ],
)

# The UTF-8 validation tests are much slower than the other tests, so they get
# their own test target with a longer timeout.
junit_tests(
    name = "utf8_tests",
    size = "large",
    srcs = [
        "src/test/java/com/google/protobuf/DecodeUtf8Test.java",
        "src/test/java/com/google/protobuf/IsValidUtf8Test.java",
        "src/test/java/com/google/protobuf/IsValidUtf8TestUtil.java",
    ],
    deps = [
        ":core",
        "@maven//:com_google_guava_guava",
        "@maven//:com_google_truth_truth",
        "@maven//:junit_junit",
    ],
)

java_lite_proto_library(
    name = "generic_test_protos_java_proto_lite",
    visibility = [
        "//java/kotlin-lite:__pkg__",
        "//java/lite:__pkg__",
    ],
    deps = ["//:generic_test_protos"],
)

java_lite_proto_library(
    name = "java_test_protos_java_proto_lite",
    visibility = [
        "//java/lite:__pkg__",
    ],
    deps = [":java_test_protos"],
)

genrule(
    name = "rewrite_javalite_test_util",
    srcs = [
        "//java/lite:lite.awk",
        "src/test/java/com/google/protobuf/TestUtil.java",
    ],
    outs = ["TestUtil.java"],
    cmd = "awk -f $(location //java/lite:lite.awk) $(location src/test/java/com/google/protobuf/TestUtil.java) > $@",
)

java_library(
    name = "test_util_lite",
    srcs = [
        "src/test/java/com/google/protobuf/TestUtilLite.java",
        ":rewrite_javalite_test_util",
    ],
    visibility = [
        "//java/kotlin-lite:__pkg__",
        "//java/lite:__pkg__",
    ],
    deps = [
        ":generic_test_protos_java_proto_lite",
        ":java_test_protos_java_proto_lite",
        ":lite_runtime_only",
        "@maven//:com_google_guava_guava",
        "@maven//:junit_junit",
    ],
)

LITE_TEST_EXCLUSIONS = [
    # Keep in sync with //java/lite:pom.xml id=copy-test-source-files execution.
    "src/test/java/com/google/protobuf/AbstractMessageTest.java",
    "src/test/java/com/google/protobuf/AbstractProto2SchemaTest.java",
    "src/test/java/com/google/protobuf/AnyTest.java",
    "src/test/java/com/google/protobuf/CodedInputStreamTest.java",
    "src/test/java/com/google/protobuf/DeprecatedFieldTest.java",
    "src/test/java/com/google/protobuf/DescriptorsTest.java",
    "src/test/java/com/google/protobuf/DiscardUnknownFieldsTest.java",
    "src/test/java/com/google/protobuf/DynamicMessageTest.java",
    "src/test/java/com/google/protobuf/ExtensionRegistryFactoryTest.java",
    "src/test/java/com/google/protobuf/FieldPresenceTest.java",
    "src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java",
    "src/test/java/com/google/protobuf/GeneratedMessageTest.java",
    "src/test/java/com/google/protobuf/LazyFieldTest.java",
    "src/test/java/com/google/protobuf/LazyStringEndToEndTest.java",
    "src/test/java/com/google/protobuf/MapForProto2Test.java",
    "src/test/java/com/google/protobuf/MapTest.java",
    "src/test/java/com/google/protobuf/MessageTest.java",
    "src/test/java/com/google/protobuf/NestedBuildersTest.java",
    "src/test/java/com/google/protobuf/PackedFieldTest.java",
    "src/test/java/com/google/protobuf/ParserTest.java",
    "src/test/java/com/google/protobuf/ParseExceptionsTest.java",
    "src/test/java/com/google/protobuf/Proto2ExtensionLookupSchemaTest.java",
    "src/test/java/com/google/protobuf/Proto2SchemaTest.java",
    "src/test/java/com/google/protobuf/Proto2UnknownEnumValueTest.java",
    "src/test/java/com/google/protobuf/RepeatedFieldBuilderV3Test.java",
    "src/test/java/com/google/protobuf/ServiceTest.java",
    "src/test/java/com/google/protobuf/SingleFieldBuilderV3Test.java",
    "src/test/java/com/google/protobuf/TestBadIdentifiers.java",
    "src/test/java/com/google/protobuf/TextFormatParseInfoTreeTest.java",
    "src/test/java/com/google/protobuf/TextFormatParseLocationTest.java",
    "src/test/java/com/google/protobuf/TextFormatTest.java",
    "src/test/java/com/google/protobuf/TestUtil.java",
    "src/test/java/com/google/protobuf/TestUtilLite.java",
    "src/test/java/com/google/protobuf/TypeRegistryTest.java",
    "src/test/java/com/google/protobuf/UnknownEnumValueTest.java",
    "src/test/java/com/google/protobuf/UnknownFieldSetLiteTest.java",
    "src/test/java/com/google/protobuf/UnknownFieldSetPerformanceTest.java",
    "src/test/java/com/google/protobuf/UnknownFieldSetTest.java",
    "src/test/java/com/google/protobuf/WellKnownTypesTest.java",
    "src/test/java/com/google/protobuf/WireFormatTest.java",
]

junit_tests(
    name = "lite_tests",
    size = "large",
    srcs = glob(
        ["src/test/java/**/*.java"],
        exclude = LITE_TEST_EXCLUSIONS,
    ),
    data = ["//:testdata"],
    test_prefix = "Lite",
    deps = [
        ":generic_test_protos_java_proto_lite",
        ":java_test_protos_java_proto_lite",
        ":lite",
        ":test_util_lite",
        "@maven//:com_google_truth_truth",
        "@maven//:junit_junit",
        "@maven//:org_mockito_mockito_core",
    ],
)

pkg_files(
    name = "dist_files",
    srcs = glob([
        "src/main/java/com/google/protobuf/*.java",
        "src/test/java/**/*.java",
        "src/test/proto/**/*.proto",
    ]) + [
        "BUILD.bazel",
        "generate-sources-build.xml",
        "generate-test-sources-build.xml",
        "pom.xml",
        "pom_template.xml",
    ],
    strip_prefix = strip_prefix.from_root(""),
    visibility = ["//java:__pkg__"],
)