1// Copyright (C) 2009 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15package { 16 default_applicable_licenses: ["external_protobuf_license"], 17} 18 19// Protobuf itself is BSD. Android build scripts are Apache 2.0. 20// Code in third_party/utf8_range and conformance/third_party/jsoncpp 21// is MIT licensed, which is covered by their separate Android.bp files. 22license { 23 name: "external_protobuf_license", 24 visibility: [":__subpackages__"], 25 license_kinds: [ 26 "SPDX-license-identifier-Apache-2.0", 27 "SPDX-license-identifier-BSD", 28 ], 29 license_text: [ 30 "LICENSE", 31 ], 32} 33 34// Applies only to java/core/src/stubs/sun/misc/Unsafe.java, which is copied 35// from GNU Classpath to work around a compilation issue. 36license { 37 name: "external_protobuf_libcore_private_stubs_license", 38 visibility: [":__subpackages__"], 39 license_kinds: [ 40 "SPDX-license-identifier-GPL-2.0-with-classpath-exception", 41 ], 42} 43 44cc_defaults { 45 name: "protobuf-cflags-defaults", 46 47 cflags: [ 48 "-Wall", 49 "-Werror", 50 "-Wno-missing-field-initializers", 51 "-Wno-unused-function", 52 "-Wno-unused-parameter", 53 "-Wno-error=user-defined-warnings", 54 ], 55 56 target: { 57 windows: { 58 cflags: ["-Wno-macro-redefined"], 59 }, 60 }, 61} 62 63cc_defaults { 64 name: "libprotobuf-cpp-lite-defaults", 65 defaults: ["protobuf-cflags-defaults"], 66 srcs: [ 67 "src/google/protobuf/any_lite.cc", 68 "src/google/protobuf/arena.cc", 69 "src/google/protobuf/arenastring.cc", 70 "src/google/protobuf/arenaz_sampler.cc", 71 "src/google/protobuf/extension_set.cc", 72 "src/google/protobuf/generated_enum_util.cc", 73 "src/google/protobuf/generated_message_tctable_lite.cc", 74 "src/google/protobuf/generated_message_util.cc", 75 "src/google/protobuf/implicit_weak_message.cc", 76 "src/google/protobuf/inlined_string_field.cc", 77 "src/google/protobuf/io/coded_stream.cc", 78 "src/google/protobuf/io/io_win32.cc", 79 "src/google/protobuf/io/strtod.cc", 80 "src/google/protobuf/io/zero_copy_stream.cc", 81 "src/google/protobuf/io/zero_copy_stream_impl.cc", 82 "src/google/protobuf/io/zero_copy_stream_impl_lite.cc", 83 "src/google/protobuf/map.cc", 84 "src/google/protobuf/message_lite.cc", 85 "src/google/protobuf/parse_context.cc", 86 "src/google/protobuf/repeated_field.cc", 87 "src/google/protobuf/repeated_ptr_field.cc", 88 "src/google/protobuf/stubs/bytestream.cc", 89 "src/google/protobuf/stubs/common.cc", 90 "src/google/protobuf/stubs/int128.cc", 91 "src/google/protobuf/stubs/status.cc", 92 "src/google/protobuf/stubs/statusor.cc", 93 "src/google/protobuf/stubs/stringpiece.cc", 94 "src/google/protobuf/stubs/stringprintf.cc", 95 "src/google/protobuf/stubs/structurally_valid.cc", 96 "src/google/protobuf/stubs/strutil.cc", 97 "src/google/protobuf/stubs/time.cc", 98 "src/google/protobuf/wire_format_lite.cc", 99 ], 100 101 local_include_dirs: [ 102 "android", 103 "src", 104 ], 105 export_include_dirs: ["src"], 106 107 target: { 108 android: { 109 shared_libs: ["liblog"], 110 }, 111 host: { 112 rtti: true, 113 }, 114 115 // This suffix for vendor and product must be updated 116 // when a new version is imported. 117 vendor: { 118 suffix: "-21.12", 119 }, 120 product: { 121 suffix: "-21.12", 122 }, 123 }, 124} 125 126// C++ lite library for the NDK. 127// ======================================================= 128cc_library_static { 129 name: "libprotobuf-cpp-lite-ndk", 130 defaults: ["libprotobuf-cpp-lite-defaults"], 131 132 sdk_version: "9", 133 134 stl: "c++_static", 135 apex_available: [ 136 "//apex_available:platform", 137 "com.android.adservices", 138 "com.android.extservices", 139 "com.android.ondevicepersonalization", 140 ], 141 min_sdk_version: "30", 142} 143 144// C++ lite library for the platform and host. 145// ======================================================= 146cc_library { 147 name: "libprotobuf-cpp-lite", 148 host_supported: true, 149 ramdisk_available: true, 150 recovery_available: true, 151 vendor_available: true, 152 vendor_ramdisk_available: true, 153 product_available: true, 154 double_loadable: true, 155 defaults: ["libprotobuf-cpp-lite-defaults"], 156 157 target: { 158 windows: { 159 enabled: true, 160 }, 161 }, 162 apex_available: [ 163 "//apex_available:platform", 164 "//apex_available:anyapex", 165 ], 166 min_sdk_version: "29", 167} 168 169// C++ full library 170// ======================================================= 171cc_defaults { 172 name: "libprotobuf-cpp-full-defaults", 173 defaults: ["libprotobuf-cpp-lite-defaults"], 174 175 srcs: [ 176 "src/google/protobuf/any.cc", 177 "src/google/protobuf/any.pb.cc", 178 "src/google/protobuf/api.pb.cc", 179 "src/google/protobuf/compiler/importer.cc", 180 "src/google/protobuf/compiler/parser.cc", 181 "src/google/protobuf/descriptor.cc", 182 "src/google/protobuf/descriptor.pb.cc", 183 "src/google/protobuf/descriptor_database.cc", 184 "src/google/protobuf/duration.pb.cc", 185 "src/google/protobuf/dynamic_message.cc", 186 "src/google/protobuf/empty.pb.cc", 187 "src/google/protobuf/extension_set_heavy.cc", 188 "src/google/protobuf/field_mask.pb.cc", 189 "src/google/protobuf/generated_message_bases.cc", 190 "src/google/protobuf/generated_message_reflection.cc", 191 "src/google/protobuf/generated_message_tctable_full.cc", 192 "src/google/protobuf/io/gzip_stream.cc", 193 "src/google/protobuf/io/printer.cc", 194 "src/google/protobuf/io/tokenizer.cc", 195 "src/google/protobuf/map_field.cc", 196 "src/google/protobuf/message.cc", 197 "src/google/protobuf/reflection_ops.cc", 198 "src/google/protobuf/service.cc", 199 "src/google/protobuf/source_context.pb.cc", 200 "src/google/protobuf/struct.pb.cc", 201 "src/google/protobuf/stubs/substitute.cc", 202 "src/google/protobuf/text_format.cc", 203 "src/google/protobuf/timestamp.pb.cc", 204 "src/google/protobuf/type.pb.cc", 205 "src/google/protobuf/unknown_field_set.cc", 206 "src/google/protobuf/util/delimited_message_util.cc", 207 "src/google/protobuf/util/field_comparator.cc", 208 "src/google/protobuf/util/field_mask_util.cc", 209 "src/google/protobuf/util/internal/datapiece.cc", 210 "src/google/protobuf/util/internal/default_value_objectwriter.cc", 211 "src/google/protobuf/util/internal/error_listener.cc", 212 "src/google/protobuf/util/internal/field_mask_utility.cc", 213 "src/google/protobuf/util/internal/json_escaping.cc", 214 "src/google/protobuf/util/internal/json_objectwriter.cc", 215 "src/google/protobuf/util/internal/json_stream_parser.cc", 216 "src/google/protobuf/util/internal/object_writer.cc", 217 "src/google/protobuf/util/internal/proto_writer.cc", 218 "src/google/protobuf/util/internal/protostream_objectsource.cc", 219 "src/google/protobuf/util/internal/protostream_objectwriter.cc", 220 "src/google/protobuf/util/internal/type_info.cc", 221 "src/google/protobuf/util/internal/utility.cc", 222 "src/google/protobuf/util/json_util.cc", 223 "src/google/protobuf/util/message_differencer.cc", 224 "src/google/protobuf/util/time_util.cc", 225 "src/google/protobuf/util/type_resolver_util.cc", 226 "src/google/protobuf/wire_format.cc", 227 "src/google/protobuf/wrappers.pb.cc", 228 ], 229 230 cflags: ["-DHAVE_ZLIB=1"], 231 shared_libs: ["libz"], 232} 233 234// C++ full library for the NDK. 235// ======================================================= 236cc_library_static { 237 name: "libprotobuf-cpp-full-ndk", 238 defaults: ["libprotobuf-cpp-full-defaults"], 239 240 sdk_version: "9", 241 242 stl: "c++_static", 243} 244 245// C++ full library for the platform and host 246// ======================================================= 247cc_library { 248 name: "libprotobuf-cpp-full", 249 defaults: ["libprotobuf-cpp-full-defaults"], 250 host_supported: true, 251 vendor_available: true, 252 product_available: true, 253 // TODO(b/153609531): remove when no longer needed. 254 native_bridge_supported: true, 255 target: { 256 android: { 257 static: { 258 enabled: false, 259 }, 260 }, 261 windows: { 262 enabled: true, 263 }, 264 }, 265 apex_available: [ 266 "//apex_available:platform", 267 "com.android.appsearch", 268 "com.android.virt", 269 ], 270 min_sdk_version: "29", 271} 272 273cc_test_library { 274 name: "libprotobuf-cpp-full-test", 275 defaults: ["libprotobuf-cpp-full-defaults"], 276 host_supported: true, 277 apex_available: [ 278 "//apex_available:platform", 279 "com.android.os.statsd", 280 "test_com.android.os.statsd", 281 ], 282 min_sdk_version: "29", 283} 284 285// Compiler library for the host 286// ======================================================= 287cc_library { 288 name: "libprotoc", 289 host_supported: true, 290 device_supported: false, 291 defaults: ["libprotobuf-cpp-full-defaults"], 292 293 srcs: [ 294 "src/google/protobuf/compiler/code_generator.cc", 295 "src/google/protobuf/compiler/command_line_interface.cc", 296 "src/google/protobuf/compiler/cpp/enum.cc", 297 "src/google/protobuf/compiler/cpp/enum_field.cc", 298 "src/google/protobuf/compiler/cpp/extension.cc", 299 "src/google/protobuf/compiler/cpp/field.cc", 300 "src/google/protobuf/compiler/cpp/file.cc", 301 "src/google/protobuf/compiler/cpp/generator.cc", 302 "src/google/protobuf/compiler/cpp/helpers.cc", 303 "src/google/protobuf/compiler/cpp/map_field.cc", 304 "src/google/protobuf/compiler/cpp/message.cc", 305 "src/google/protobuf/compiler/cpp/message_field.cc", 306 "src/google/protobuf/compiler/cpp/padding_optimizer.cc", 307 "src/google/protobuf/compiler/cpp/parse_function_generator.cc", 308 "src/google/protobuf/compiler/cpp/primitive_field.cc", 309 "src/google/protobuf/compiler/cpp/service.cc", 310 "src/google/protobuf/compiler/cpp/string_field.cc", 311 "src/google/protobuf/compiler/csharp/csharp_doc_comment.cc", 312 "src/google/protobuf/compiler/csharp/csharp_enum.cc", 313 "src/google/protobuf/compiler/csharp/csharp_enum_field.cc", 314 "src/google/protobuf/compiler/csharp/csharp_field_base.cc", 315 "src/google/protobuf/compiler/csharp/csharp_generator.cc", 316 "src/google/protobuf/compiler/csharp/csharp_helpers.cc", 317 "src/google/protobuf/compiler/csharp/csharp_map_field.cc", 318 "src/google/protobuf/compiler/csharp/csharp_message.cc", 319 "src/google/protobuf/compiler/csharp/csharp_message_field.cc", 320 "src/google/protobuf/compiler/csharp/csharp_primitive_field.cc", 321 "src/google/protobuf/compiler/csharp/csharp_reflection_class.cc", 322 "src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc", 323 "src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc", 324 "src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc", 325 "src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc", 326 "src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc", 327 "src/google/protobuf/compiler/java/context.cc", 328 "src/google/protobuf/compiler/java/doc_comment.cc", 329 "src/google/protobuf/compiler/java/enum.cc", 330 "src/google/protobuf/compiler/java/enum_field.cc", 331 "src/google/protobuf/compiler/java/enum_field_lite.cc", 332 "src/google/protobuf/compiler/java/enum_lite.cc", 333 "src/google/protobuf/compiler/java/extension.cc", 334 "src/google/protobuf/compiler/java/extension_lite.cc", 335 "src/google/protobuf/compiler/java/field.cc", 336 "src/google/protobuf/compiler/java/file.cc", 337 "src/google/protobuf/compiler/java/generator.cc", 338 "src/google/protobuf/compiler/java/generator_factory.cc", 339 "src/google/protobuf/compiler/java/helpers.cc", 340 "src/google/protobuf/compiler/java/kotlin_generator.cc", 341 "src/google/protobuf/compiler/java/map_field.cc", 342 "src/google/protobuf/compiler/java/map_field_lite.cc", 343 "src/google/protobuf/compiler/java/message.cc", 344 "src/google/protobuf/compiler/java/message_builder.cc", 345 "src/google/protobuf/compiler/java/message_builder_lite.cc", 346 "src/google/protobuf/compiler/java/message_field.cc", 347 "src/google/protobuf/compiler/java/message_field_lite.cc", 348 "src/google/protobuf/compiler/java/message_lite.cc", 349 "src/google/protobuf/compiler/java/name_resolver.cc", 350 "src/google/protobuf/compiler/java/primitive_field.cc", 351 "src/google/protobuf/compiler/java/primitive_field_lite.cc", 352 "src/google/protobuf/compiler/java/service.cc", 353 "src/google/protobuf/compiler/java/shared_code_generator.cc", 354 "src/google/protobuf/compiler/java/string_field.cc", 355 "src/google/protobuf/compiler/java/string_field_lite.cc", 356 "src/google/protobuf/compiler/objectivec/objectivec_enum.cc", 357 "src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc", 358 "src/google/protobuf/compiler/objectivec/objectivec_extension.cc", 359 "src/google/protobuf/compiler/objectivec/objectivec_field.cc", 360 "src/google/protobuf/compiler/objectivec/objectivec_file.cc", 361 "src/google/protobuf/compiler/objectivec/objectivec_generator.cc", 362 "src/google/protobuf/compiler/objectivec/objectivec_helpers.cc", 363 "src/google/protobuf/compiler/objectivec/objectivec_map_field.cc", 364 "src/google/protobuf/compiler/objectivec/objectivec_message.cc", 365 "src/google/protobuf/compiler/objectivec/objectivec_message_field.cc", 366 "src/google/protobuf/compiler/objectivec/objectivec_oneof.cc", 367 "src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc", 368 "src/google/protobuf/compiler/php/php_generator.cc", 369 "src/google/protobuf/compiler/plugin.cc", 370 "src/google/protobuf/compiler/plugin.pb.cc", 371 "src/google/protobuf/compiler/python/generator.cc", 372 "src/google/protobuf/compiler/python/helpers.cc", 373 "src/google/protobuf/compiler/python/pyi_generator.cc", 374 "src/google/protobuf/compiler/ruby/ruby_generator.cc", 375 "src/google/protobuf/compiler/subprocess.cc", 376 "src/google/protobuf/compiler/zip_writer.cc", 377 ], 378 379 export_include_dirs: [ 380 "android", 381 "src", 382 "config", 383 ], 384 cflags: [ 385 "-Wno-unused-private-field", 386 ], 387 388 target: { 389 windows: { 390 enabled: true, 391 // defined by the global cflags, but redefined by protobuf 392 cflags: ["-UWIN32_LEAN_AND_MEAN"], 393 }, 394 }, 395} 396 397// Android Protocol buffer compiler, aprotoc (host executable) 398// used by the build systems as $(PROTOC) defined in 399// build/core/config.mk 400// ======================================================= 401cc_binary_host { 402 name: "aprotoc", 403 defaults: ["protobuf-cflags-defaults"], 404 405 target: { 406 windows: { 407 enabled: true, 408 // defined by the global cflags, but redefined by protobuf 409 cflags: ["-UWIN32_LEAN_AND_MEAN"], 410 }, 411 }, 412 413 // Statically link libc++ because we copy aprotoc to unbundled projects where 414 // libc++.so may not be available. 415 stl: "libc++_static", 416 417 srcs: [ 418 "src/google/protobuf/compiler/main.cc", 419 ], 420 421 static_libs: [ 422 "libprotoc", 423 "libz", 424 ], 425 426 cflags: [ 427 "-DHAVE_ZLIB=1", 428 ], 429 430 rtti: true, 431} 432 433cc_test { 434 name: "libprotobuf_vendor_suffix_test", 435 vendor: true, 436 srcs: ["vendor_suffix_test.cpp"], 437 shared_libs: [ 438 "libprotobuf-cpp-lite", 439 "libprotobuf-cpp-full", 440 ], 441 static_libs: ["libbase"], 442 stl: "libc++", 443 test_suites: ["general-tests"], 444 test_config: "vendor_suffix_test.config", 445} 446 447java_defaults { 448 name: "libprotobuf_errorprone_defaults", 449 errorprone: { 450 javacflags: [ 451 "-Xep:MissingOverride:OFF", // b/73499927 452 "-Xep:IgnoredPureGetter:WARN", 453 ], 454 }, 455} 456 457// Java nano library 458// ======================================================= 459java_library_static { 460 name: "libprotobuf-java-nano", 461 defaults: ["libprotobuf_errorprone_defaults"], 462 host_supported: true, 463 464 sdk_version: "9", 465 466 srcs: [ 467 "javanano/src/main/java/com/google/protobuf/nano/**/*.java", 468 ], 469 470 target: { 471 android: { 472 srcs: ["javanano/src/device/main/java/com/google/protobuf/nano/**/*.java"], 473 }, 474 }, 475 476 java_version: "1.7", 477 478 apex_available: [ 479 "//apex_available:platform", 480 "com.android.tethering", 481 "com.android.wifi", 482 "com.android.neuralnetworks", 483 ], 484} 485 486// Java micro library 487// ======================================================= 488java_library_static { 489 name: "libprotobuf-java-micro", 490 defaults: ["libprotobuf_errorprone_defaults"], 491 host_supported: true, 492 493 sdk_version: "8", 494 495 srcs: ["javamicro/src/main/java/com/google/protobuf/micro/**/*.java"], 496 497 apex_available: [ 498 "//apex_available:platform", 499 "com.android.btservices", 500 ], 501} 502 503// Java lite library 504// ======================================================= 505java_library_static { 506 name: "libprotobuf-java-lite", 507 host_supported: true, 508 sdk_version: "core_current", 509 defaults: ["libprotobuf_errorprone_defaults"], 510 511 srcs: [ 512 "java/core/src/main/java/com/google/protobuf/AbstractMessageLite.java", 513 "java/core/src/main/java/com/google/protobuf/AbstractParser.java", 514 "java/core/src/main/java/com/google/protobuf/AbstractProtobufList.java", 515 "java/core/src/main/java/com/google/protobuf/AllocatedBuffer.java", 516 "java/core/src/main/java/com/google/protobuf/Android.java", 517 "java/core/src/main/java/com/google/protobuf/ArrayDecoders.java", 518 "java/core/src/main/java/com/google/protobuf/BinaryReader.java", 519 "java/core/src/main/java/com/google/protobuf/BinaryWriter.java", 520 "java/core/src/main/java/com/google/protobuf/BooleanArrayList.java", 521 "java/core/src/main/java/com/google/protobuf/BufferAllocator.java", 522 "java/core/src/main/java/com/google/protobuf/ByteBufferWriter.java", 523 "java/core/src/main/java/com/google/protobuf/ByteOutput.java", 524 "java/core/src/main/java/com/google/protobuf/ByteString.java", 525 "java/core/src/main/java/com/google/protobuf/CanIgnoreReturnValue.java", 526 "java/core/src/main/java/com/google/protobuf/CheckReturnValue.java", 527 "java/core/src/main/java/com/google/protobuf/CodedInputStream.java", 528 "java/core/src/main/java/com/google/protobuf/CodedInputStreamReader.java", 529 "java/core/src/main/java/com/google/protobuf/CodedOutputStream.java", 530 "java/core/src/main/java/com/google/protobuf/CodedOutputStreamWriter.java", 531 "java/core/src/main/java/com/google/protobuf/CompileTimeConstant.java", 532 "java/core/src/main/java/com/google/protobuf/DoubleArrayList.java", 533 "java/core/src/main/java/com/google/protobuf/ExperimentalApi.java", 534 "java/core/src/main/java/com/google/protobuf/ExtensionLite.java", 535 "java/core/src/main/java/com/google/protobuf/ExtensionRegistryFactory.java", 536 "java/core/src/main/java/com/google/protobuf/ExtensionRegistryLite.java", 537 "java/core/src/main/java/com/google/protobuf/ExtensionSchema.java", 538 "java/core/src/main/java/com/google/protobuf/ExtensionSchemaLite.java", 539 "java/core/src/main/java/com/google/protobuf/ExtensionSchemas.java", 540 "java/core/src/main/java/com/google/protobuf/FieldInfo.java", 541 "java/core/src/main/java/com/google/protobuf/FieldSet.java", 542 "java/core/src/main/java/com/google/protobuf/FieldType.java", 543 "java/core/src/main/java/com/google/protobuf/FloatArrayList.java", 544 "java/core/src/main/java/com/google/protobuf/GeneratedMessageInfoFactory.java", 545 "java/core/src/main/java/com/google/protobuf/GeneratedMessageLite.java", 546 "java/core/src/main/java/com/google/protobuf/InlineMe.java", 547 "java/core/src/main/java/com/google/protobuf/IntArrayList.java", 548 "java/core/src/main/java/com/google/protobuf/Internal.java", 549 "java/core/src/main/java/com/google/protobuf/InvalidProtocolBufferException.java", 550 "java/core/src/main/java/com/google/protobuf/IterableByteBufferInputStream.java", 551 "java/core/src/main/java/com/google/protobuf/JavaType.java", 552 "java/core/src/main/java/com/google/protobuf/LazyField.java", 553 "java/core/src/main/java/com/google/protobuf/LazyFieldLite.java", 554 "java/core/src/main/java/com/google/protobuf/LazyStringArrayList.java", 555 "java/core/src/main/java/com/google/protobuf/LazyStringList.java", 556 "java/core/src/main/java/com/google/protobuf/ListFieldSchema.java", 557 "java/core/src/main/java/com/google/protobuf/LongArrayList.java", 558 "java/core/src/main/java/com/google/protobuf/ManifestSchemaFactory.java", 559 "java/core/src/main/java/com/google/protobuf/MapEntryLite.java", 560 "java/core/src/main/java/com/google/protobuf/MapFieldLite.java", 561 "java/core/src/main/java/com/google/protobuf/MapFieldSchema.java", 562 "java/core/src/main/java/com/google/protobuf/MapFieldSchemaLite.java", 563 "java/core/src/main/java/com/google/protobuf/MapFieldSchemas.java", 564 "java/core/src/main/java/com/google/protobuf/MessageInfo.java", 565 "java/core/src/main/java/com/google/protobuf/MessageInfoFactory.java", 566 "java/core/src/main/java/com/google/protobuf/MessageLite.java", 567 "java/core/src/main/java/com/google/protobuf/MessageLiteOrBuilder.java", 568 "java/core/src/main/java/com/google/protobuf/MessageLiteToString.java", 569 "java/core/src/main/java/com/google/protobuf/MessageSchema.java", 570 "java/core/src/main/java/com/google/protobuf/MessageSetSchema.java", 571 "java/core/src/main/java/com/google/protobuf/MutabilityOracle.java", 572 "java/core/src/main/java/com/google/protobuf/NewInstanceSchema.java", 573 "java/core/src/main/java/com/google/protobuf/NewInstanceSchemaLite.java", 574 "java/core/src/main/java/com/google/protobuf/NewInstanceSchemas.java", 575 "java/core/src/main/java/com/google/protobuf/NioByteString.java", 576 "java/core/src/main/java/com/google/protobuf/OneofInfo.java", 577 "java/core/src/main/java/com/google/protobuf/Parser.java", 578 "java/core/src/main/java/com/google/protobuf/PrimitiveNonBoxingCollection.java", 579 "java/core/src/main/java/com/google/protobuf/ProtoSyntax.java", 580 "java/core/src/main/java/com/google/protobuf/Protobuf.java", 581 "java/core/src/main/java/com/google/protobuf/ProtobufArrayList.java", 582 "java/core/src/main/java/com/google/protobuf/ProtobufLists.java", 583 "java/core/src/main/java/com/google/protobuf/ProtocolStringList.java", 584 "java/core/src/main/java/com/google/protobuf/RawMessageInfo.java", 585 "java/core/src/main/java/com/google/protobuf/Reader.java", 586 "java/core/src/main/java/com/google/protobuf/RopeByteString.java", 587 "java/core/src/main/java/com/google/protobuf/Schema.java", 588 "java/core/src/main/java/com/google/protobuf/SchemaFactory.java", 589 "java/core/src/main/java/com/google/protobuf/SchemaUtil.java", 590 "java/core/src/main/java/com/google/protobuf/SmallSortedMap.java", 591 "java/core/src/main/java/com/google/protobuf/StructuralMessageInfo.java", 592 "java/core/src/main/java/com/google/protobuf/TextFormatEscaper.java", 593 "java/core/src/main/java/com/google/protobuf/UninitializedMessageException.java", 594 "java/core/src/main/java/com/google/protobuf/UnknownFieldSchema.java", 595 "java/core/src/main/java/com/google/protobuf/UnknownFieldSetLite.java", 596 "java/core/src/main/java/com/google/protobuf/UnknownFieldSetLiteSchema.java", 597 "java/core/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java", 598 "java/core/src/main/java/com/google/protobuf/UnsafeByteOperations.java", 599 "java/core/src/main/java/com/google/protobuf/UnsafeUtil.java", 600 "java/core/src/main/java/com/google/protobuf/Utf8.java", 601 "java/core/src/main/java/com/google/protobuf/WireFormat.java", 602 "java/core/src/main/java/com/google/protobuf/Writer.java", 603 ], 604 605 target: { 606 android: { 607 libs: ["libcore_private.stubs"], 608 }, 609 windows: { 610 enabled: true, 611 }, 612 }, 613 614 java_version: "1.7", 615 616 apex_available: [ 617 "//apex_available:platform", 618 "//apex_available:anyapex", 619 ], 620 621 optimize: { 622 proguard_flags_files: ["java/lite/proguard.pgcfg"], 623 }, 624} 625 626// Java lite library (compatibility for old host-side users) 627// ======================================================= 628java_library_host { 629 name: "host-libprotobuf-java-lite", 630 static_libs: ["libprotobuf-java-lite"], 631} 632 633// Java full library (for host-side users) 634// ======================================================= 635java_library_host { 636 name: "libprotobuf-java-full", 637 defaults: ["libprotobuf_errorprone_defaults"], 638 639 srcs: [ 640 "java/core/src/main/java/**/*.java", 641 ":libprotobuf-internal-protos", 642 ], 643 644 proto: { 645 type: "full", 646 local_include_dirs: [ 647 "src", 648 ], 649 canonical_path_from_root: false, 650 }, 651 652 java_version: "1.7", 653 target: { 654 windows: { 655 enabled: true, 656 }, 657 }, 658} 659 660java_library_host { 661 name: "libprotobuf-java-util-full", 662 defaults: ["libprotobuf_errorprone_defaults"], 663 srcs: [ 664 "java/util/src/main/java/com/google/protobuf/util/*.java", 665 ], 666 static_libs: [ 667 "error_prone_annotations", 668 "gson", 669 "guava", 670 "guava-android-annotation-stubs", 671 "libprotobuf-java-full", 672 ], 673 // b/267831518: Pin tradefed and dependencies to Java 11. 674 java_version: "11", 675 target: { 676 windows: { 677 enabled: true, 678 }, 679 }, 680} 681 682// Java full library (compatibility for old host-side users) 683// ======================================================= 684java_library_host { 685 name: "host-libprotobuf-java-full", 686 static_libs: ["libprotobuf-java-full"], 687} 688 689// Stubs library for using hidden APIs in core-oj and core-libart 690// ======================================================= 691java_library { 692 name: "libcore_private.stubs", 693 srcs: ["java/core/src/stubs/**/*.java"], 694 sdk_version: "core_current", 695 installable: false, 696 licenses: ["external_protobuf_libcore_private_stubs_license"], 697 is_stubs_module: true, 698} 699 700// Python library 701// ======================================================= 702python_library { 703 name: "libprotobuf-python", 704 srcs: [ 705 ":libprotobuf-internal-python-srcs", 706 ":libprotobuf-internal-protos", 707 ], 708 libs: [ 709 "py-six", 710 ], 711 proto: { 712 local_include_dirs: [ 713 "src", 714 ], 715 canonical_path_from_root: false, 716 }, 717 host_supported: true, 718} 719 720filegroup { 721 name: "libprotobuf-internal-python-srcs", 722 srcs: ["python/google/**/*.py"], 723 path: "python", 724} 725 726filegroup { 727 name: "libprotobuf-internal-java-full-srcs", 728 srcs: ["java/core/src/main/java/**/*.java"], 729 path: "java", 730} 731 732filegroup { 733 name: "libprotobuf-internal-protos", 734 srcs: [ 735 "src/google/protobuf/descriptor.proto", 736 "src/google/protobuf/any.proto", 737 "src/google/protobuf/source_context.proto", 738 "src/google/protobuf/type.proto", 739 "src/google/protobuf/compiler/plugin.proto", 740 "src/google/protobuf/api.proto", 741 "src/google/protobuf/duration.proto", 742 "src/google/protobuf/empty.proto", 743 "src/google/protobuf/field_mask.proto", 744 "src/google/protobuf/struct.proto", 745 "src/google/protobuf/timestamp.proto", 746 "src/google/protobuf/wrappers.proto", 747 ], 748 path: "src", 749} 750 751filegroup { 752 name: "libprotobuf-internal-descriptor-proto", 753 srcs: [ 754 "src/google/protobuf/descriptor.proto", 755 ], 756 path: "src", 757} 758 759filegroup { 760 name: "libprotobuf-internal-any-proto", 761 srcs: [ 762 "src/google/protobuf/any.proto", 763 ], 764 path: "src", 765} 766 767// Unit tests 768// ======================================================= 769cc_defaults { 770 name: "libprotobuf-test-defaults", 771 host_supported: true, 772 compile_multilib: "64", 773 proto: { 774 local_include_dirs: ["src"], 775 canonical_path_from_root: false, 776 }, 777 shared_libs: ["liblog"], 778} 779 780filegroup { 781 name: "libprotobuf-test-protos-lite", 782 srcs: [ 783 "src/google/protobuf/map_lite_unittest.proto", 784 "src/google/protobuf/unittest_import.proto", 785 "src/google/protobuf/unittest_import_lite.proto", 786 "src/google/protobuf/unittest_import_public.proto", 787 "src/google/protobuf/unittest_import_public_lite.proto", 788 "src/google/protobuf/unittest_lite.proto", 789 "src/google/protobuf/unittest_proto3.proto", 790 "src/google/protobuf/unittest_proto3_arena.proto", 791 ], 792 path: "src", 793} 794 795// Full test protos include some lite protos, because they are used in 796// unknown_field_set_unittest.cc, which mixes full and lite protos. 797// Full protos are a strict superset of lite protos, so this shouldn't 798// matter for the test. 799filegroup { 800 name: "libprotobuf-test-protos-full", 801 srcs: [ 802 "src/google/protobuf/any_test.proto", 803 "src/google/protobuf/map_unittest.proto", 804 "src/google/protobuf/map_proto2_unittest.proto", 805 "src/google/protobuf/test_messages_proto2.proto", 806 "src/google/protobuf/test_messages_proto3.proto", 807 "src/google/protobuf/unittest.proto", 808 "src/google/protobuf/unittest_arena.proto", 809 "src/google/protobuf/unittest_custom_options.proto", 810 "src/google/protobuf/unittest_drop_unknown_fields.proto", 811 "src/google/protobuf/unittest_embed_optimize_for.proto", 812 "src/google/protobuf/unittest_empty.proto", 813 "src/google/protobuf/unittest_enormous_descriptor.proto", 814 "src/google/protobuf/unittest_import.proto", 815 "src/google/protobuf/unittest_import_lite.proto", 816 "src/google/protobuf/unittest_import_public.proto", 817 "src/google/protobuf/unittest_import_public_lite.proto", 818 "src/google/protobuf/unittest_lazy_dependencies.proto", 819 "src/google/protobuf/unittest_lazy_dependencies_custom_option.proto", 820 "src/google/protobuf/unittest_lazy_dependencies_enum.proto", 821 "src/google/protobuf/unittest_lite.proto", 822 "src/google/protobuf/unittest_mset_wire_format.proto", 823 "src/google/protobuf/unittest_mset.proto", 824 "src/google/protobuf/unittest_no_field_presence.proto", 825 "src/google/protobuf/unittest_no_generic_services.proto", 826 "src/google/protobuf/unittest_optimize_for.proto", 827 "src/google/protobuf/unittest_preserve_unknown_enum.proto", 828 "src/google/protobuf/unittest_preserve_unknown_enum2.proto", 829 "src/google/protobuf/unittest_proto3_arena.proto", 830 "src/google/protobuf/unittest_proto3_optional.proto", 831 "src/google/protobuf/unittest_proto3.proto", 832 "src/google/protobuf/unittest_well_known_types.proto", 833 "src/google/protobuf/util/internal/testdata/anys.proto", 834 "src/google/protobuf/util/internal/testdata/books.proto", 835 "src/google/protobuf/util/internal/testdata/default_value.proto", 836 "src/google/protobuf/util/internal/testdata/default_value_test.proto", 837 "src/google/protobuf/util/internal/testdata/field_mask.proto", 838 "src/google/protobuf/util/internal/testdata/maps.proto", 839 "src/google/protobuf/util/internal/testdata/oneofs.proto", 840 "src/google/protobuf/util/internal/testdata/proto3.proto", 841 "src/google/protobuf/util/internal/testdata/struct.proto", 842 "src/google/protobuf/util/internal/testdata/timestamp_duration.proto", 843 "src/google/protobuf/util/internal/testdata/wrappers.proto", 844 "src/google/protobuf/util/json_format.proto", 845 "src/google/protobuf/util/json_format_proto3.proto", 846 "src/google/protobuf/util/message_differencer_unittest.proto", 847 ], 848 path: "src", 849} 850 851cc_test { 852 name: "libprotobuf-lite-test", 853 defaults: ["libprotobuf-test-defaults"], 854 srcs: [ 855 "src/google/protobuf/arena_test_util.cc", 856 "src/google/protobuf/generated_message_tctable_lite_test.cc", 857 "src/google/protobuf/lite_arena_unittest.cc", 858 "src/google/protobuf/lite_unittest.cc", 859 "src/google/protobuf/map_lite_test_util.cc", 860 "src/google/protobuf/proto3_arena_lite_unittest.cc", 861 "src/google/protobuf/proto3_lite_unittest.cc", 862 "src/google/protobuf/test_util_lite.cc", 863 ":libprotobuf-test-protos-lite", 864 ], 865 cflags: [ 866 // Occurs in generated_message_tctable_lite_test.cc 867 "-Wno-missing-field-initializers", 868 ], 869 proto: { 870 type: "lite", 871 }, 872 static_libs: [ 873 "libgmock", 874 "libprotobuf-cpp-lite", 875 ], 876} 877 878cc_test { 879 name: "libprotobuf-full-test", 880 defaults: ["libprotobuf-test-defaults"], 881 srcs: [ 882 "src/google/protobuf/any_test.cc", 883 "src/google/protobuf/arena_test_util.cc", 884 "src/google/protobuf/arena_unittest.cc", 885 "src/google/protobuf/arenastring_unittest.cc", 886 "src/google/protobuf/arenaz_sampler_test.cc", 887 "src/google/protobuf/descriptor_database_unittest.cc", 888 "src/google/protobuf/descriptor_unittest.cc", 889 "src/google/protobuf/drop_unknown_fields_test.cc", 890 "src/google/protobuf/dynamic_message_unittest.cc", 891 "src/google/protobuf/extension_set_unittest.cc", 892 "src/google/protobuf/generated_message_reflection_unittest.cc", 893 "src/google/protobuf/inlined_string_field_unittest.cc", 894 "src/google/protobuf/io/coded_stream_unittest.cc", 895 "src/google/protobuf/io/io_win32_unittest.cc", 896 "src/google/protobuf/io/printer_unittest.cc", 897 "src/google/protobuf/io/tokenizer_unittest.cc", 898 "src/google/protobuf/io/zero_copy_stream_unittest.cc", 899 "src/google/protobuf/map_field_test.cc", 900 "src/google/protobuf/map_test.cc", 901 "src/google/protobuf/message_unittest.cc", 902 "src/google/protobuf/no_field_presence_test.cc", 903 "src/google/protobuf/preserve_unknown_enum_test.cc", 904 "src/google/protobuf/proto3_arena_unittest.cc", 905 "src/google/protobuf/reflection_ops_unittest.cc", 906 "src/google/protobuf/reflection_tester.cc", 907 "src/google/protobuf/repeated_field_reflection_unittest.cc", 908 "src/google/protobuf/repeated_field_unittest.cc", 909 "src/google/protobuf/testing/googletest.cc", 910 "src/google/protobuf/testing/file.cc", 911 "src/google/protobuf/test_util.cc", 912 "src/google/protobuf/text_format_unittest.cc", 913 "src/google/protobuf/unknown_field_set_unittest.cc", 914 "src/google/protobuf/util/delimited_message_util_test.cc", 915 "src/google/protobuf/util/field_comparator_test.cc", 916 "src/google/protobuf/util/field_mask_util_test.cc", 917 "src/google/protobuf/util/internal/default_value_objectwriter_test.cc", 918 "src/google/protobuf/util/internal/json_objectwriter_test.cc", 919 "src/google/protobuf/util/internal/json_stream_parser_test.cc", 920 "src/google/protobuf/util/internal/protostream_objectsource_test.cc", 921 "src/google/protobuf/util/internal/protostream_objectwriter_test.cc", 922 "src/google/protobuf/util/internal/type_info_test_helper.cc", 923 "src/google/protobuf/util/json_util_test.cc", 924 "src/google/protobuf/util/message_differencer_unittest.cc", 925 "src/google/protobuf/util/time_util_test.cc", 926 "src/google/protobuf/util/type_resolver_util_test.cc", 927 "src/google/protobuf/well_known_types_unittest.cc", 928 "src/google/protobuf/wire_format_unittest.cc", 929 ":libprotobuf-test-protos-full", 930 ], 931 data: [ 932 "src/google/protobuf/testdata/*", 933 ], 934 cflags: ["-Wno-unused-parameter"], 935 proto: { 936 type: "full", 937 }, 938 static_libs: [ 939 "libbase", 940 "libgmock", 941 ], 942 shared_libs: ["libprotobuf-cpp-full"], 943} 944 945cc_test { 946 name: "libprotobuf-stubs-test", 947 defaults: ["libprotobuf-test-defaults"], 948 srcs: [ 949 "src/google/protobuf/stubs/bytestream_unittest.cc", 950 "src/google/protobuf/stubs/common_unittest.cc", 951 "src/google/protobuf/stubs/int128_unittest.cc", 952 "src/google/protobuf/stubs/status_test.cc", 953 "src/google/protobuf/stubs/statusor_test.cc", 954 "src/google/protobuf/stubs/stringpiece_unittest.cc", 955 "src/google/protobuf/stubs/stringprintf_unittest.cc", 956 "src/google/protobuf/stubs/structurally_valid_unittest.cc", 957 "src/google/protobuf/stubs/strutil_unittest.cc", 958 "src/google/protobuf/stubs/template_util_unittest.cc", 959 "src/google/protobuf/stubs/time_test.cc", 960 "src/google/protobuf/testing/googletest.cc", 961 "src/google/protobuf/testing/file.cc", 962 ], 963 cflags: ["-Wno-unused-parameter"], 964 static_libs: [ 965 "libbase", 966 "libgmock", 967 ], 968 shared_libs: ["libprotobuf-cpp-full"], 969} 970 971// To test java proto params build rules. 972// ======================================================= 973java_test { 974 name: "aprotoc-test-nano-params", 975 sdk_version: "current", 976 proto: { 977 type: "nano", 978 local_include_dirs: ["src"], 979 output_params: [ 980 "java_package=javanano/src/test/java/com/google/protobuf/nano/unittest_import_nano.proto\\|com.google.protobuf.nano", 981 "java_outer_classname=javanano/src/test/java/com/google/protobuf/nano/unittest_import_nano.proto\\|UnittestImportNano", 982 ], 983 }, 984 srcs: [ 985 "javanano/src/test/java/com/google/protobuf/nano/unittest_import_nano.proto", 986 "javanano/src/test/java/com/google/protobuf/nano/unittest_simple_nano.proto", 987 "javanano/src/test/java/com/google/protobuf/nano/unittest_stringutf8_nano.proto", 988 "javanano/src/test/java/com/google/protobuf/nano/unittest_recursive_nano.proto", 989 ], 990 java_version: "1.7", 991} 992 993// To test Android-specific nanoproto features. 994// ======================================================= 995java_test { 996 // Parcelable messages 997 name: "android-nano-test-parcelable", 998 sdk_version: "current", 999 // Only needed at compile-time. 1000 libs: ["android-support-annotations"], 1001 proto: { 1002 type: "nano", 1003 local_include_dirs: ["src"], 1004 output_params: [ 1005 "parcelable_messages=true", 1006 "generate_intdefs=true", 1007 ], 1008 }, 1009 srcs: ["javanano/src/test/java/com/google/protobuf/nano/unittest_simple_nano.proto"], 1010} 1011 1012java_test { 1013 // Parcelable and extendable messages 1014 name: "android-nano-test-parcelable-extendable", 1015 sdk_version: "current", 1016 // Only needed at compile-time. 1017 libs: ["android-support-annotations"], 1018 proto: { 1019 type: "nano", 1020 local_include_dirs: ["src"], 1021 output_params: [ 1022 "parcelable_messages=true", 1023 "generate_intdefs=true", 1024 "store_unknown_fields=true", 1025 ], 1026 }, 1027 srcs: ["javanano/src/test/java/com/google/protobuf/nano/unittest_extension_nano.proto"], 1028 java_version: "1.7", 1029} 1030 1031android_test { 1032 // Test APK 1033 name: "NanoAndroidTest", 1034 sdk_version: "8", 1035 srcs: ["javanano/src/device/test/java/com/google/protobuf/nano/**/*.java"], 1036 manifest: "javanano/src/device/test/AndroidManifest.xml", 1037 static_libs: [ 1038 "libprotobuf-java-nano", 1039 "android-nano-test-parcelable", 1040 "android-nano-test-parcelable-extendable", 1041 ], 1042 dex_preopt: { 1043 enabled: false, 1044 }, 1045} 1046 1047// Java micro generator plugin 1048// ======================================================= 1049cc_binary_host { 1050 name: "protoc-gen-javamicro", 1051 defaults: ["protobuf-cflags-defaults"], 1052 srcs: [ 1053 "src/google/protobuf/compiler/javamicro/javamicro_enum.cc", 1054 "src/google/protobuf/compiler/javamicro/javamicro_enum_field.cc", 1055 "src/google/protobuf/compiler/javamicro/javamicro_field.cc", 1056 "src/google/protobuf/compiler/javamicro/javamicro_file.cc", 1057 "src/google/protobuf/compiler/javamicro/javamicro_generator.cc", 1058 "src/google/protobuf/compiler/javamicro/javamicro_helpers.cc", 1059 "src/google/protobuf/compiler/javamicro/javamicro_main.cc", 1060 "src/google/protobuf/compiler/javamicro/javamicro_message.cc", 1061 "src/google/protobuf/compiler/javamicro/javamicro_message_field.cc", 1062 "src/google/protobuf/compiler/javamicro/javamicro_primitive_field.cc", 1063 ], 1064 cflags: [ 1065 "-Wno-unused-private-field", 1066 ], 1067 local_include_dirs: ["src"], 1068 static_libs: [ 1069 "libprotoc", 1070 "libz", 1071 ], 1072 stl: "libc++_static", 1073} 1074 1075// Java nano generator plugin 1076// ======================================================= 1077cc_binary_host { 1078 name: "protoc-gen-javanano", 1079 defaults: ["protobuf-cflags-defaults"], 1080 srcs: [ 1081 "src/google/protobuf/compiler/javanano/javanano_enum.cc", 1082 "src/google/protobuf/compiler/javanano/javanano_enum_field.cc", 1083 "src/google/protobuf/compiler/javanano/javanano_extension.cc", 1084 "src/google/protobuf/compiler/javanano/javanano_field.cc", 1085 "src/google/protobuf/compiler/javanano/javanano_file.cc", 1086 "src/google/protobuf/compiler/javanano/javanano_generator.cc", 1087 "src/google/protobuf/compiler/javanano/javanano_helpers.cc", 1088 "src/google/protobuf/compiler/javanano/javanano_main.cc", 1089 "src/google/protobuf/compiler/javanano/javanano_map_field.cc", 1090 "src/google/protobuf/compiler/javanano/javanano_message.cc", 1091 "src/google/protobuf/compiler/javanano/javanano_message_field.cc", 1092 "src/google/protobuf/compiler/javanano/javanano_primitive_field.cc", 1093 ], 1094 cflags: [ 1095 "-Wno-unused-private-field", 1096 ], 1097 local_include_dirs: ["src"], 1098 static_libs: [ 1099 "libprotoc", 1100 "libz", 1101 ], 1102 stl: "libc++_static", 1103} 1104