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// 15// 16 17package { 18 default_applicable_licenses: ["external_protobuf_license"], 19} 20 21// Added automatically by a large-scale-change that took the approach of 22// 'apply every license found to every target'. While this makes sure we respect 23// every license restriction, it may not be entirely correct. 24// 25// e.g. GPL in an MIT project might only apply to the contrib/ directory. 26// 27// Please consider splitting the single license below into multiple licenses, 28// taking care not to lose any license_kind information, and overriding the 29// default license using the 'licenses: [...]' property on targets as needed. 30// 31// For unused files, consider creating a 'fileGroup' with "//visibility:private" 32// to attach the license to, and including a comment whether the files may be 33// used in the current project. 34// See: http://go/android-license-faq 35license { 36 name: "external_protobuf_license", 37 visibility: [":__subpackages__"], 38 license_kinds: [ 39 "SPDX-license-identifier-Apache-2.0", 40 "SPDX-license-identifier-BSD", 41 "SPDX-license-identifier-GPL-2.0", 42 "SPDX-license-identifier-MIT", 43 "legacy_unencumbered", 44 ], 45 license_text: [ 46 "LICENSE", 47 ], 48} 49 50cc_defaults { 51 name: "protobuf-cflags-defaults", 52 clang_cflags: [ 53 "-Wno-unused-const-variable", 54 "-Wno-error=user-defined-warnings", 55 ], 56 cflags: [ 57 "-Wall", 58 "-Werror", 59 "-Wno-unused-function", 60 "-Wno-sign-compare", 61 "-Wno-unused-parameter", 62 "-Wno-sign-promo", 63 ], 64 65 target: { 66 windows: { 67 cflags: ["-Wno-macro-redefined"], 68 }, 69 }, 70} 71 72cc_defaults { 73 name: "libprotobuf-cpp-lite-defaults", 74 defaults: ["protobuf-cflags-defaults"], 75 srcs: [ 76 "src/google/protobuf/any_lite.cc", 77 "src/google/protobuf/arena.cc", 78 "src/google/protobuf/extension_set.cc", 79 "src/google/protobuf/generated_enum_util.cc", 80 "src/google/protobuf/generated_message_table_driven_lite.cc", 81 "src/google/protobuf/generated_message_util.cc", 82 "src/google/protobuf/implicit_weak_message.cc", 83 "src/google/protobuf/io/coded_stream.cc", 84 "src/google/protobuf/io/io_win32.cc", 85 "src/google/protobuf/io/strtod.cc", 86 "src/google/protobuf/io/zero_copy_stream.cc", 87 "src/google/protobuf/io/zero_copy_stream_impl.cc", 88 "src/google/protobuf/io/zero_copy_stream_impl_lite.cc", 89 "src/google/protobuf/message_lite.cc", 90 "src/google/protobuf/parse_context.cc", 91 "src/google/protobuf/repeated_field.cc", 92 "src/google/protobuf/stubs/bytestream.cc", 93 "src/google/protobuf/stubs/common.cc", 94 "src/google/protobuf/stubs/int128.cc", 95 "src/google/protobuf/stubs/status.cc", 96 "src/google/protobuf/stubs/statusor.cc", 97 "src/google/protobuf/stubs/stringpiece.cc", 98 "src/google/protobuf/stubs/stringprintf.cc", 99 "src/google/protobuf/stubs/structurally_valid.cc", 100 "src/google/protobuf/stubs/strutil.cc", 101 "src/google/protobuf/stubs/time.cc", 102 "src/google/protobuf/wire_format_lite.cc", 103 ], 104 105 local_include_dirs: [ 106 "android", 107 "src", 108 ], 109 export_include_dirs: ["src"], 110 111 target: { 112 android: { 113 shared_libs: ["liblog"], 114 }, 115 116 // This suffix for vendor and product must be updated 117 // when a new version is imported. 118 vendor: { 119 suffix: "-3.9.1", 120 }, 121 product: { 122 suffix: "-3.9.1", 123 }, 124 }, 125} 126 127// C++ lite library for the NDK. 128// ======================================================= 129cc_library_static { 130 name: "libprotobuf-cpp-lite-ndk", 131 defaults: ["libprotobuf-cpp-lite-defaults"], 132 133 sdk_version: "9", 134 135 stl: "c++_static", 136} 137 138// C++ lite library for the platform and host. 139// ======================================================= 140cc_library { 141 name: "libprotobuf-cpp-lite", 142 host_supported: true, 143 ramdisk_available: true, 144 recovery_available: true, 145 vendor_available: true, 146 vendor_ramdisk_available: true, 147 product_available: true, 148 double_loadable: true, 149 defaults: ["libprotobuf-cpp-lite-defaults"], 150 151 target: { 152 windows: { 153 enabled: true, 154 }, 155 }, 156 apex_available: [ 157 "//apex_available:platform", 158 "//apex_available:anyapex", 159 ], 160 min_sdk_version: "29", 161} 162 163// C++ lite library for the platform and host. 164// ======================================================= 165cc_library_static { 166 name: "libprotobuf-cpp-lite_static", 167 host_supported: true, 168 defaults: ["libprotobuf-cpp-lite-defaults"], 169} 170 171// C++ full library 172// ======================================================= 173cc_defaults { 174 name: "libprotobuf-cpp-full-defaults", 175 defaults: ["libprotobuf-cpp-lite-defaults"], 176 177 srcs: [ 178 "src/google/protobuf/any.cc", 179 "src/google/protobuf/any.pb.cc", 180 "src/google/protobuf/api.pb.cc", 181 "src/google/protobuf/compiler/importer.cc", 182 "src/google/protobuf/compiler/parser.cc", 183 "src/google/protobuf/descriptor.cc", 184 "src/google/protobuf/descriptor.pb.cc", 185 "src/google/protobuf/descriptor_database.cc", 186 "src/google/protobuf/duration.pb.cc", 187 "src/google/protobuf/dynamic_message.cc", 188 "src/google/protobuf/empty.pb.cc", 189 "src/google/protobuf/extension_set_heavy.cc", 190 "src/google/protobuf/field_mask.pb.cc", 191 "src/google/protobuf/generated_message_reflection.cc", 192 "src/google/protobuf/generated_message_table_driven.cc", 193 "src/google/protobuf/io/gzip_stream.cc", 194 "src/google/protobuf/io/printer.cc", 195 "src/google/protobuf/io/tokenizer.cc", 196 "src/google/protobuf/map_field.cc", 197 "src/google/protobuf/message.cc", 198 "src/google/protobuf/reflection_ops.cc", 199 "src/google/protobuf/service.cc", 200 "src/google/protobuf/source_context.pb.cc", 201 "src/google/protobuf/struct.pb.cc", 202 "src/google/protobuf/stubs/mathlimits.cc", 203 "src/google/protobuf/stubs/substitute.cc", 204 "src/google/protobuf/text_format.cc", 205 "src/google/protobuf/timestamp.pb.cc", 206 "src/google/protobuf/type.pb.cc", 207 "src/google/protobuf/unknown_field_set.cc", 208 "src/google/protobuf/util/delimited_message_util.cc", 209 "src/google/protobuf/util/field_comparator.cc", 210 "src/google/protobuf/util/field_mask_util.cc", 211 "src/google/protobuf/util/internal/datapiece.cc", 212 "src/google/protobuf/util/internal/default_value_objectwriter.cc", 213 "src/google/protobuf/util/internal/error_listener.cc", 214 "src/google/protobuf/util/internal/field_mask_utility.cc", 215 "src/google/protobuf/util/internal/json_escaping.cc", 216 "src/google/protobuf/util/internal/json_objectwriter.cc", 217 "src/google/protobuf/util/internal/json_stream_parser.cc", 218 "src/google/protobuf/util/internal/object_writer.cc", 219 "src/google/protobuf/util/internal/proto_writer.cc", 220 "src/google/protobuf/util/internal/protostream_objectsource.cc", 221 "src/google/protobuf/util/internal/protostream_objectwriter.cc", 222 "src/google/protobuf/util/internal/type_info.cc", 223 "src/google/protobuf/util/internal/type_info_test_helper.cc", 224 "src/google/protobuf/util/internal/utility.cc", 225 "src/google/protobuf/util/json_util.cc", 226 "src/google/protobuf/util/message_differencer.cc", 227 "src/google/protobuf/util/time_util.cc", 228 "src/google/protobuf/util/type_resolver_util.cc", 229 "src/google/protobuf/wire_format.cc", 230 "src/google/protobuf/wrappers.pb.cc", 231 ], 232 233 cflags: ["-DHAVE_ZLIB=1"], 234 shared_libs: ["libz"], 235} 236 237// C++ full library for the NDK. 238// ======================================================= 239cc_library_static { 240 name: "libprotobuf-cpp-full-ndk", 241 defaults: ["libprotobuf-cpp-full-defaults"], 242 243 sdk_version: "9", 244 245 stl: "c++_static", 246} 247 248// C++ full library for the platform and host 249// ======================================================= 250cc_library { 251 name: "libprotobuf-cpp-full", 252 defaults: ["libprotobuf-cpp-full-defaults"], 253 host_supported: true, 254 vendor_available: true, 255 product_available: true, 256 // TODO(b/153609531): remove when no longer needed. 257 native_bridge_supported: true, 258 target: { 259 android: { 260 static: { 261 enabled: false, 262 }, 263 }, 264 windows: { 265 enabled: true, 266 }, 267 }, 268 apex_available: [ 269 "//apex_available:platform", 270 "com.android.bluetooth", 271 "com.android.appsearch", 272 "com.android.virt", 273 ], 274 min_sdk_version: "29", 275} 276 277// Compiler library for the host 278// ======================================================= 279cc_library { 280 name: "libprotoc", 281 host_supported: true, 282 device_supported: false, 283 defaults: ["libprotobuf-cpp-full-defaults"], 284 285 srcs: [ 286 "src/google/protobuf/compiler/code_generator.cc", 287 "src/google/protobuf/compiler/command_line_interface.cc", 288 "src/google/protobuf/compiler/cpp/cpp_enum.cc", 289 "src/google/protobuf/compiler/cpp/cpp_enum_field.cc", 290 "src/google/protobuf/compiler/cpp/cpp_extension.cc", 291 "src/google/protobuf/compiler/cpp/cpp_field.cc", 292 "src/google/protobuf/compiler/cpp/cpp_file.cc", 293 "src/google/protobuf/compiler/cpp/cpp_generator.cc", 294 "src/google/protobuf/compiler/cpp/cpp_helpers.cc", 295 "src/google/protobuf/compiler/cpp/cpp_map_field.cc", 296 "src/google/protobuf/compiler/cpp/cpp_message.cc", 297 "src/google/protobuf/compiler/cpp/cpp_message_field.cc", 298 "src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc", 299 "src/google/protobuf/compiler/cpp/cpp_primitive_field.cc", 300 "src/google/protobuf/compiler/cpp/cpp_service.cc", 301 "src/google/protobuf/compiler/cpp/cpp_string_field.cc", 302 "src/google/protobuf/compiler/csharp/csharp_doc_comment.cc", 303 "src/google/protobuf/compiler/csharp/csharp_enum.cc", 304 "src/google/protobuf/compiler/csharp/csharp_enum_field.cc", 305 "src/google/protobuf/compiler/csharp/csharp_field_base.cc", 306 "src/google/protobuf/compiler/csharp/csharp_generator.cc", 307 "src/google/protobuf/compiler/csharp/csharp_helpers.cc", 308 "src/google/protobuf/compiler/csharp/csharp_map_field.cc", 309 "src/google/protobuf/compiler/csharp/csharp_message.cc", 310 "src/google/protobuf/compiler/csharp/csharp_message_field.cc", 311 "src/google/protobuf/compiler/csharp/csharp_primitive_field.cc", 312 "src/google/protobuf/compiler/csharp/csharp_reflection_class.cc", 313 "src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc", 314 "src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc", 315 "src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc", 316 "src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc", 317 "src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc", 318 "src/google/protobuf/compiler/java/java_context.cc", 319 "src/google/protobuf/compiler/java/java_doc_comment.cc", 320 "src/google/protobuf/compiler/java/java_enum.cc", 321 "src/google/protobuf/compiler/java/java_enum_field.cc", 322 "src/google/protobuf/compiler/java/java_enum_field_lite.cc", 323 "src/google/protobuf/compiler/java/java_enum_lite.cc", 324 "src/google/protobuf/compiler/java/java_extension.cc", 325 "src/google/protobuf/compiler/java/java_extension_lite.cc", 326 "src/google/protobuf/compiler/java/java_field.cc", 327 "src/google/protobuf/compiler/java/java_file.cc", 328 "src/google/protobuf/compiler/java/java_generator.cc", 329 "src/google/protobuf/compiler/java/java_generator_factory.cc", 330 "src/google/protobuf/compiler/java/java_helpers.cc", 331 "src/google/protobuf/compiler/java/java_map_field.cc", 332 "src/google/protobuf/compiler/java/java_map_field_lite.cc", 333 "src/google/protobuf/compiler/java/java_message.cc", 334 "src/google/protobuf/compiler/java/java_message_builder.cc", 335 "src/google/protobuf/compiler/java/java_message_builder_lite.cc", 336 "src/google/protobuf/compiler/java/java_message_field.cc", 337 "src/google/protobuf/compiler/java/java_message_field_lite.cc", 338 "src/google/protobuf/compiler/java/java_message_lite.cc", 339 "src/google/protobuf/compiler/java/java_name_resolver.cc", 340 "src/google/protobuf/compiler/java/java_primitive_field.cc", 341 "src/google/protobuf/compiler/java/java_primitive_field_lite.cc", 342 "src/google/protobuf/compiler/java/java_service.cc", 343 "src/google/protobuf/compiler/java/java_shared_code_generator.cc", 344 "src/google/protobuf/compiler/java/java_string_field.cc", 345 "src/google/protobuf/compiler/java/java_string_field_lite.cc", 346 "src/google/protobuf/compiler/js/js_generator.cc", 347 "src/google/protobuf/compiler/js/well_known_types_embed.cc", 348 "src/google/protobuf/compiler/objectivec/objectivec_enum.cc", 349 "src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc", 350 "src/google/protobuf/compiler/objectivec/objectivec_extension.cc", 351 "src/google/protobuf/compiler/objectivec/objectivec_field.cc", 352 "src/google/protobuf/compiler/objectivec/objectivec_file.cc", 353 "src/google/protobuf/compiler/objectivec/objectivec_generator.cc", 354 "src/google/protobuf/compiler/objectivec/objectivec_helpers.cc", 355 "src/google/protobuf/compiler/objectivec/objectivec_map_field.cc", 356 "src/google/protobuf/compiler/objectivec/objectivec_message.cc", 357 "src/google/protobuf/compiler/objectivec/objectivec_message_field.cc", 358 "src/google/protobuf/compiler/objectivec/objectivec_oneof.cc", 359 "src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc", 360 "src/google/protobuf/compiler/php/php_generator.cc", 361 "src/google/protobuf/compiler/plugin.cc", 362 "src/google/protobuf/compiler/plugin.pb.cc", 363 "src/google/protobuf/compiler/python/python_generator.cc", 364 "src/google/protobuf/compiler/ruby/ruby_generator.cc", 365 "src/google/protobuf/compiler/subprocess.cc", 366 "src/google/protobuf/compiler/zip_writer.cc", 367 ], 368 369 export_include_dirs: [ 370 "android", 371 "src", 372 "config", 373 ], 374 375 target: { 376 windows: { 377 enabled: true, 378 // defined by the global cflags, but redefined by protobuf 379 cflags: ["-UWIN32_LEAN_AND_MEAN"], 380 }, 381 }, 382 383 rtti: true, 384} 385 386// Android Protocol buffer compiler, aprotoc (host executable) 387// used by the build systems as $(PROTOC) defined in 388// build/core/config.mk 389// ======================================================= 390cc_binary_host { 391 name: "aprotoc", 392 defaults: ["protobuf-cflags-defaults"], 393 394 target: { 395 windows: { 396 enabled: true, 397 // defined by the global cflags, but redefined by protobuf 398 cflags: ["-UWIN32_LEAN_AND_MEAN"], 399 }, 400 }, 401 402 // Statically link libc++ because we copy aprotoc to unbundled projects where 403 // libc++.so may not be available. 404 stl: "libc++_static", 405 406 srcs: [ 407 "src/google/protobuf/compiler/main.cc", 408 ], 409 410 static_libs: [ 411 "libprotoc", 412 "libz", 413 ], 414 415 cflags: [ 416 "-DHAVE_ZLIB=1", 417 ], 418 419 rtti: true, 420} 421 422cc_test { 423 name: "libprotobuf_vendor_suffix_test", 424 vendor: true, 425 srcs: ["vendor_suffix_test.cpp"], 426 shared_libs: [ 427 "libprotobuf-cpp-lite", 428 "libprotobuf-cpp-full", 429 ], 430 static_libs: ["libbase"], 431 stl: "libc++", 432 test_suites: ["general-tests"], 433 test_config: "vendor_suffix_test.config", 434} 435 436java_defaults { 437 name: "libprotobuf_errorprone_defaults", 438 errorprone: { 439 javacflags: ["-Xep:MissingOverride:OFF"], // b/73499927 440 }, 441} 442 443// Java nano library 444// ======================================================= 445java_library_static { 446 name: "libprotobuf-java-nano", 447 defaults: ["libprotobuf_errorprone_defaults"], 448 host_supported: true, 449 450 sdk_version: "9", 451 452 srcs: [ 453 "javanano/src/main/java/com/google/protobuf/nano/**/*.java", 454 ], 455 456 target: { 457 android: { 458 srcs: ["javanano/src/device/main/java/com/google/protobuf/nano/**/*.java"], 459 }, 460 }, 461 462 java_version: "1.7", 463 464 apex_available: [ 465 "//apex_available:platform", 466 // TODO(b/151068271) switch this to //apex_available:anyapex 467 "com.android.tethering", 468 "com.android.wifi", 469 ], 470} 471 472// Java nano library (compatibility for old host-side users) 473// ======================================================= 474java_library_host { 475 name: "host-libprotobuf-java-nano", 476 static_libs: ["libprotobuf-java-nano"], 477 478 java_version: "1.7", 479} 480 481// Java micro library 482// ======================================================= 483java_library_static { 484 name: "libprotobuf-java-micro", 485 defaults: ["libprotobuf_errorprone_defaults"], 486 host_supported: true, 487 488 sdk_version: "8", 489 490 srcs: ["javamicro/src/main/java/com/google/protobuf/micro/**/*.java"], 491 492 apex_available: [ 493 "//apex_available:platform", 494 // TODO(b/151068271) switch this to //apex_available:anyapex 495 "com.android.bluetooth", 496 ], 497} 498 499// Java micro library (compatibility for old host-side users) 500// ======================================================= 501java_library_host { 502 name: "host-libprotobuf-java-micro", 503 static_libs: ["libprotobuf-java-micro"], 504} 505 506// Java lite library 507// ======================================================= 508java_library_static { 509 name: "libprotobuf-java-lite", 510 host_supported: true, 511 sdk_version: "core_current", 512 513 srcs: [ 514 "java/core/src/main/java/com/google/protobuf/AbstractMessageLite.java", 515 "java/core/src/main/java/com/google/protobuf/AbstractParser.java", 516 "java/core/src/main/java/com/google/protobuf/AbstractProtobufList.java", 517 "java/core/src/main/java/com/google/protobuf/AllocatedBuffer.java", 518 "java/core/src/main/java/com/google/protobuf/Android.java", 519 "java/core/src/main/java/com/google/protobuf/ArrayDecoders.java", 520 "java/core/src/main/java/com/google/protobuf/BinaryReader.java", 521 "java/core/src/main/java/com/google/protobuf/BinaryWriter.java", 522 "java/core/src/main/java/com/google/protobuf/BooleanArrayList.java", 523 "java/core/src/main/java/com/google/protobuf/BufferAllocator.java", 524 "java/core/src/main/java/com/google/protobuf/ByteBufferWriter.java", 525 "java/core/src/main/java/com/google/protobuf/ByteOutput.java", 526 "java/core/src/main/java/com/google/protobuf/ByteString.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/DoubleArrayList.java", 532 "java/core/src/main/java/com/google/protobuf/ExperimentalApi.java", 533 "java/core/src/main/java/com/google/protobuf/ExtensionLite.java", 534 "java/core/src/main/java/com/google/protobuf/ExtensionRegistryFactory.java", 535 "java/core/src/main/java/com/google/protobuf/ExtensionRegistryLite.java", 536 "java/core/src/main/java/com/google/protobuf/ExtensionSchema.java", 537 "java/core/src/main/java/com/google/protobuf/ExtensionSchemaLite.java", 538 "java/core/src/main/java/com/google/protobuf/ExtensionSchemas.java", 539 "java/core/src/main/java/com/google/protobuf/FieldInfo.java", 540 "java/core/src/main/java/com/google/protobuf/FieldSet.java", 541 "java/core/src/main/java/com/google/protobuf/FieldType.java", 542 "java/core/src/main/java/com/google/protobuf/FloatArrayList.java", 543 "java/core/src/main/java/com/google/protobuf/GeneratedMessageInfoFactory.java", 544 "java/core/src/main/java/com/google/protobuf/GeneratedMessageLite.java", 545 "java/core/src/main/java/com/google/protobuf/IntArrayList.java", 546 "java/core/src/main/java/com/google/protobuf/Internal.java", 547 "java/core/src/main/java/com/google/protobuf/InvalidProtocolBufferException.java", 548 "java/core/src/main/java/com/google/protobuf/IterableByteBufferInputStream.java", 549 "java/core/src/main/java/com/google/protobuf/JavaType.java", 550 "java/core/src/main/java/com/google/protobuf/LazyField.java", 551 "java/core/src/main/java/com/google/protobuf/LazyFieldLite.java", 552 "java/core/src/main/java/com/google/protobuf/LazyStringArrayList.java", 553 "java/core/src/main/java/com/google/protobuf/LazyStringList.java", 554 "java/core/src/main/java/com/google/protobuf/ListFieldSchema.java", 555 "java/core/src/main/java/com/google/protobuf/LongArrayList.java", 556 "java/core/src/main/java/com/google/protobuf/ManifestSchemaFactory.java", 557 "java/core/src/main/java/com/google/protobuf/MapEntryLite.java", 558 "java/core/src/main/java/com/google/protobuf/MapFieldLite.java", 559 "java/core/src/main/java/com/google/protobuf/MapFieldSchema.java", 560 "java/core/src/main/java/com/google/protobuf/MapFieldSchemaLite.java", 561 "java/core/src/main/java/com/google/protobuf/MapFieldSchemas.java", 562 "java/core/src/main/java/com/google/protobuf/MessageInfo.java", 563 "java/core/src/main/java/com/google/protobuf/MessageInfoFactory.java", 564 "java/core/src/main/java/com/google/protobuf/MessageLite.java", 565 "java/core/src/main/java/com/google/protobuf/MessageLiteOrBuilder.java", 566 "java/core/src/main/java/com/google/protobuf/MessageLiteToString.java", 567 "java/core/src/main/java/com/google/protobuf/MessageSchema.java", 568 "java/core/src/main/java/com/google/protobuf/MessageSetSchema.java", 569 "java/core/src/main/java/com/google/protobuf/MutabilityOracle.java", 570 "java/core/src/main/java/com/google/protobuf/NewInstanceSchema.java", 571 "java/core/src/main/java/com/google/protobuf/NewInstanceSchemaLite.java", 572 "java/core/src/main/java/com/google/protobuf/NewInstanceSchemas.java", 573 "java/core/src/main/java/com/google/protobuf/NioByteString.java", 574 "java/core/src/main/java/com/google/protobuf/OneofInfo.java", 575 "java/core/src/main/java/com/google/protobuf/Parser.java", 576 "java/core/src/main/java/com/google/protobuf/PrimitiveNonBoxingCollection.java", 577 "java/core/src/main/java/com/google/protobuf/ProtoSyntax.java", 578 "java/core/src/main/java/com/google/protobuf/Protobuf.java", 579 "java/core/src/main/java/com/google/protobuf/ProtobufArrayList.java", 580 "java/core/src/main/java/com/google/protobuf/ProtobufLists.java", 581 "java/core/src/main/java/com/google/protobuf/ProtocolStringList.java", 582 "java/core/src/main/java/com/google/protobuf/RawMessageInfo.java", 583 "java/core/src/main/java/com/google/protobuf/Reader.java", 584 "java/core/src/main/java/com/google/protobuf/RopeByteString.java", 585 "java/core/src/main/java/com/google/protobuf/Schema.java", 586 "java/core/src/main/java/com/google/protobuf/SchemaFactory.java", 587 "java/core/src/main/java/com/google/protobuf/SchemaUtil.java", 588 "java/core/src/main/java/com/google/protobuf/SmallSortedMap.java", 589 "java/core/src/main/java/com/google/protobuf/StructuralMessageInfo.java", 590 "java/core/src/main/java/com/google/protobuf/TextFormatEscaper.java", 591 "java/core/src/main/java/com/google/protobuf/UninitializedMessageException.java", 592 "java/core/src/main/java/com/google/protobuf/UnknownFieldSchema.java", 593 "java/core/src/main/java/com/google/protobuf/UnknownFieldSetLite.java", 594 "java/core/src/main/java/com/google/protobuf/UnknownFieldSetLiteSchema.java", 595 "java/core/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java", 596 "java/core/src/main/java/com/google/protobuf/UnsafeUtil.java", 597 "java/core/src/main/java/com/google/protobuf/Utf8.java", 598 "java/core/src/main/java/com/google/protobuf/WireFormat.java", 599 "java/core/src/main/java/com/google/protobuf/Writer.java", 600 ], 601 602 target: { 603 android: { 604 libs: ["libcore_private.stubs"], 605 }, 606 }, 607 608 java_version: "1.7", 609 610 apex_available: [ 611 "//apex_available:platform", 612 // TODO(b/151068271) switch below to //apex_available:anyapex 613 "com.android.permission", 614 "com.android.bluetooth", 615 "com.android.tethering", 616 "com.android.wifi", 617 "com.android.extservices", 618 "com.android.car.framework", 619 "com.android.uwb", 620 ], 621} 622 623// Java lite library (compatibility for old host-side users) 624// ======================================================= 625java_library_host { 626 name: "host-libprotobuf-java-lite", 627 static_libs: ["libprotobuf-java-lite"], 628} 629 630// Java full library (for host-side users) 631// ======================================================= 632java_library_host { 633 name: "libprotobuf-java-full", 634 defaults: ["libprotobuf_errorprone_defaults"], 635 636 srcs: [ 637 "java/core/src/main/java/**/*.java", 638 ":libprotobuf-internal-protos", 639 ], 640 641 proto: { 642 type: "full", 643 local_include_dirs: [ 644 "src", 645 ], 646 canonical_path_from_root: false, 647 }, 648 649 java_version: "1.7", 650} 651 652java_library_host { 653 name: "libprotobuf-java-util-full", 654 defaults: ["libprotobuf_errorprone_defaults"], 655 srcs: [ 656 "java/util/src/main/java/com/google/protobuf/util/*.java", 657 ], 658 static_libs: [ 659 "error_prone_annotations", 660 "gson-prebuilt-jar", 661 "guava-21.0", 662 "libprotobuf-java-full", 663 ], 664} 665 666// Java full library (compatibility for old host-side users) 667// ======================================================= 668java_library_host { 669 name: "host-libprotobuf-java-full", 670 static_libs: ["libprotobuf-java-full"], 671} 672 673// Stubs library for using hidden APIs in core-oj and core-libart 674// ======================================================= 675java_library { 676 name: "libcore_private.stubs", 677 srcs: ["java/core/src/stubs/**/*.java"], 678 sdk_version: "core_current", 679 installable: false, 680} 681 682// Python library 683// ======================================================= 684python_library { 685 name: "libprotobuf-python", 686 srcs: [ 687 ":libprotobuf-internal-python-srcs", 688 ":libprotobuf-internal-protos", 689 ], 690 version: { 691 py2: { 692 enabled: true, 693 }, 694 py3: { 695 enabled: true, 696 }, 697 }, 698 libs: [ 699 "py-six", 700 ], 701 proto: { 702 local_include_dirs: [ 703 "src", 704 ], 705 canonical_path_from_root: false, 706 }, 707 host_supported: true, 708} 709 710filegroup { 711 name: "libprotobuf-internal-python-srcs", 712 srcs: ["python/google/**/*.py"], 713 path: "python", 714} 715 716filegroup { 717 name: "libprotobuf-internal-protos", 718 srcs: [ 719 "src/google/protobuf/descriptor.proto", 720 "src/google/protobuf/any.proto", 721 "src/google/protobuf/source_context.proto", 722 "src/google/protobuf/type.proto", 723 "src/google/protobuf/compiler/plugin.proto", 724 "src/google/protobuf/api.proto", 725 "src/google/protobuf/duration.proto", 726 "src/google/protobuf/empty.proto", 727 "src/google/protobuf/field_mask.proto", 728 "src/google/protobuf/struct.proto", 729 "src/google/protobuf/timestamp.proto", 730 "src/google/protobuf/wrappers.proto", 731 ], 732 path: "src", 733} 734 735// To test java proto params build rules. 736// ======================================================= 737java_test { 738 name: "aprotoc-test-nano-params", 739 sdk_version: "current", 740 proto: { 741 type: "nano", 742 local_include_dirs: ["src"], 743 output_params: [ 744 "java_package=javanano/src/test/java/com/google/protobuf/nano/unittest_import_nano.proto\\|com.google.protobuf.nano", 745 "java_outer_classname=javanano/src/test/java/com/google/protobuf/nano/unittest_import_nano.proto\\|UnittestImportNano", 746 ], 747 }, 748 srcs: [ 749 "javanano/src/test/java/com/google/protobuf/nano/unittest_import_nano.proto", 750 "javanano/src/test/java/com/google/protobuf/nano/unittest_simple_nano.proto", 751 "javanano/src/test/java/com/google/protobuf/nano/unittest_stringutf8_nano.proto", 752 "javanano/src/test/java/com/google/protobuf/nano/unittest_recursive_nano.proto", 753 ], 754 java_version: "1.7", 755} 756 757// To test Android-specific nanoproto features. 758// ======================================================= 759java_test { 760 // Parcelable messages 761 name: "android-nano-test-parcelable", 762 sdk_version: "current", 763 // Only needed at compile-time. 764 libs: ["android-support-annotations"], 765 proto: { 766 type: "nano", 767 local_include_dirs: ["src"], 768 output_params: [ 769 "parcelable_messages=true", 770 "generate_intdefs=true", 771 ], 772 }, 773 srcs: ["javanano/src/test/java/com/google/protobuf/nano/unittest_simple_nano.proto"], 774} 775 776java_test { 777 // Parcelable and extendable messages 778 name: "android-nano-test-parcelable-extendable", 779 sdk_version: "current", 780 // Only needed at compile-time. 781 libs: ["android-support-annotations"], 782 proto: { 783 type: "nano", 784 local_include_dirs: ["src"], 785 output_params: [ 786 "parcelable_messages=true", 787 "generate_intdefs=true", 788 "store_unknown_fields=true", 789 ], 790 }, 791 srcs: ["javanano/src/test/java/com/google/protobuf/nano/unittest_extension_nano.proto"], 792 java_version: "1.7", 793} 794 795android_test { 796 // Test APK 797 name: "NanoAndroidTest", 798 sdk_version: "8", 799 srcs: ["javanano/src/device/test/java/com/google/protobuf/nano/**/*.java"], 800 manifest: "javanano/src/device/test/AndroidManifest.xml", 801 static_libs: [ 802 "libprotobuf-java-nano", 803 "android-nano-test-parcelable", 804 "android-nano-test-parcelable-extendable", 805 ], 806 dex_preopt: { 807 enabled: false, 808 }, 809} 810 811// Java micro generator plugin 812// ======================================================= 813cc_binary_host { 814 name: "protoc-gen-javamicro", 815 defaults: ["protobuf-cflags-defaults"], 816 srcs: [ 817 "src/google/protobuf/compiler/javamicro/javamicro_enum.cc", 818 "src/google/protobuf/compiler/javamicro/javamicro_enum_field.cc", 819 "src/google/protobuf/compiler/javamicro/javamicro_field.cc", 820 "src/google/protobuf/compiler/javamicro/javamicro_file.cc", 821 "src/google/protobuf/compiler/javamicro/javamicro_generator.cc", 822 "src/google/protobuf/compiler/javamicro/javamicro_helpers.cc", 823 "src/google/protobuf/compiler/javamicro/javamicro_main.cc", 824 "src/google/protobuf/compiler/javamicro/javamicro_message.cc", 825 "src/google/protobuf/compiler/javamicro/javamicro_message_field.cc", 826 "src/google/protobuf/compiler/javamicro/javamicro_primitive_field.cc", 827 ], 828 local_include_dirs: ["src"], 829 static_libs: [ 830 "libprotoc", 831 "libz", 832 ], 833 stl: "libc++_static", 834} 835 836// Java nano generator plugin 837// ======================================================= 838cc_binary_host { 839 name: "protoc-gen-javanano", 840 defaults: ["protobuf-cflags-defaults"], 841 srcs: [ 842 "src/google/protobuf/compiler/javanano/javanano_enum.cc", 843 "src/google/protobuf/compiler/javanano/javanano_enum_field.cc", 844 "src/google/protobuf/compiler/javanano/javanano_extension.cc", 845 "src/google/protobuf/compiler/javanano/javanano_field.cc", 846 "src/google/protobuf/compiler/javanano/javanano_file.cc", 847 "src/google/protobuf/compiler/javanano/javanano_generator.cc", 848 "src/google/protobuf/compiler/javanano/javanano_helpers.cc", 849 "src/google/protobuf/compiler/javanano/javanano_main.cc", 850 "src/google/protobuf/compiler/javanano/javanano_map_field.cc", 851 "src/google/protobuf/compiler/javanano/javanano_message.cc", 852 "src/google/protobuf/compiler/javanano/javanano_message_field.cc", 853 "src/google/protobuf/compiler/javanano/javanano_primitive_field.cc", 854 ], 855 local_include_dirs: ["src"], 856 static_libs: [ 857 "libprotoc", 858 "libz", 859 ], 860 stl: "libc++_static", 861} 862