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 17IGNORED_WARNINGS = [ 18 "-Wno-sign-compare", 19 "-Wno-unused-parameter", 20 "-Wno-sign-promo", 21 "-Wno-error=return-type", 22] 23 24cc_defaults { 25 name: "libprotobuf-cpp-lite-defaults", 26 srcs: [ 27 "src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc", 28 "src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc", 29 "src/google/protobuf/stubs/bytestream.cc", 30 "src/google/protobuf/stubs/common.cc", 31 "src/google/protobuf/stubs/int128.cc", 32 "src/google/protobuf/stubs/once.cc", 33 "src/google/protobuf/stubs/status.cc", 34 "src/google/protobuf/stubs/statusor.cc", 35 "src/google/protobuf/stubs/stringpiece.cc", 36 "src/google/protobuf/stubs/stringprintf.cc", 37 "src/google/protobuf/stubs/structurally_valid.cc", 38 "src/google/protobuf/stubs/strutil.cc", 39 "src/google/protobuf/stubs/time.cc", 40 "src/google/protobuf/arena.cc", 41 "src/google/protobuf/arenastring.cc", 42 "src/google/protobuf/extension_set.cc", 43 "src/google/protobuf/generated_message_util.cc", 44 "src/google/protobuf/message_lite.cc", 45 "src/google/protobuf/repeated_field.cc", 46 "src/google/protobuf/wire_format_lite.cc", 47 "src/google/protobuf/io/coded_stream.cc", 48 "src/google/protobuf/io/zero_copy_stream.cc", 49 "src/google/protobuf/io/zero_copy_stream_impl_lite.cc", 50 ], 51 52 local_include_dirs: [ 53 "android", 54 "src", 55 ], 56 export_include_dirs: ["src"], 57 58 cflags: IGNORED_WARNINGS, 59} 60 61// C++ lite library for the NDK. 62// ======================================================= 63cc_library_static { 64 name: "libprotobuf-cpp-lite-ndk", 65 defaults: ["libprotobuf-cpp-lite-defaults"], 66 67 cflags: ["-DGOOGLE_PROTOBUF_NO_RTTI"], 68 69 sdk_version: "9", 70 71 stl: "stlport_static", 72} 73 74// C++ lite library for the platform and host. 75// ======================================================= 76cc_library { 77 name: "libprotobuf-cpp-lite", 78 host_supported: true, 79 vendor_available: true, 80 vndk: { 81 enabled: true, 82 }, 83 defaults: ["libprotobuf-cpp-lite-defaults"], 84 85 cflags: ["-DGOOGLE_PROTOBUF_NO_RTTI"], 86 87 target: { 88 windows: { 89 enabled: true, 90 }, 91 }, 92} 93 94// C++ lite library for the platform and host. 95// ======================================================= 96cc_library_static { 97 name: "libprotobuf-cpp-lite_static", 98 host_supported: true, 99 defaults: ["libprotobuf-cpp-lite-defaults"], 100 cflags: ["-DGOOGLE_PROTOBUF_NO_RTTI"], 101} 102 103// C++ lite library + rtti (libc++ flavored for the platform and host) 104// ======================================================= 105cc_library_shared { 106 name: "libprotobuf-cpp-lite-rtti", 107 host_supported: true, 108 vendor_available: true, 109 defaults: ["libprotobuf-cpp-lite-defaults"], 110 111 rtti: true, 112} 113 114// C++ full library 115// ======================================================= 116protobuf_cc_full_src_files = [ 117 "src/google/protobuf/any.pb.cc", 118 "src/google/protobuf/api.pb.cc", 119 "src/google/protobuf/stubs/mathlimits.cc", 120 "src/google/protobuf/any.cc", 121 "src/google/protobuf/descriptor.cc", 122 "src/google/protobuf/descriptor_database.cc", 123 "src/google/protobuf/descriptor.pb.cc", 124 "src/google/protobuf/duration.pb.cc", 125 "src/google/protobuf/dynamic_message.cc", 126 "src/google/protobuf/empty.pb.cc", 127 "src/google/protobuf/extension_set_heavy.cc", 128 "src/google/protobuf/field_mask.pb.cc", 129 "src/google/protobuf/generated_message_reflection.cc", 130 "src/google/protobuf/map_field.cc", 131 "src/google/protobuf/message.cc", 132 "src/google/protobuf/reflection_ops.cc", 133 "src/google/protobuf/service.cc", 134 "src/google/protobuf/source_context.pb.cc", 135 "src/google/protobuf/struct.pb.cc", 136 "src/google/protobuf/stubs/substitute.cc", 137 "src/google/protobuf/text_format.cc", 138 "src/google/protobuf/timestamp.pb.cc", 139 "src/google/protobuf/type.pb.cc", 140 "src/google/protobuf/unknown_field_set.cc", 141 "src/google/protobuf/wire_format.cc", 142 "src/google/protobuf/wrappers.pb.cc", 143 "src/google/protobuf/io/gzip_stream.cc", 144 "src/google/protobuf/io/printer.cc", 145 "src/google/protobuf/io/strtod.cc", 146 "src/google/protobuf/io/tokenizer.cc", 147 "src/google/protobuf/io/zero_copy_stream_impl.cc", 148 "src/google/protobuf/compiler/importer.cc", 149 "src/google/protobuf/compiler/parser.cc", 150 "src/google/protobuf/util/field_comparator.cc", 151 "src/google/protobuf/util/field_mask_util.cc", 152 "src/google/protobuf/util/internal/datapiece.cc", 153 "src/google/protobuf/util/internal/default_value_objectwriter.cc", 154 "src/google/protobuf/util/internal/error_listener.cc", 155 "src/google/protobuf/util/internal/field_mask_utility.cc", 156 "src/google/protobuf/util/internal/json_escaping.cc", 157 "src/google/protobuf/util/internal/json_objectwriter.cc", 158 "src/google/protobuf/util/internal/json_stream_parser.cc", 159 "src/google/protobuf/util/internal/object_writer.cc", 160 "src/google/protobuf/util/internal/protostream_objectsource.cc", 161 "src/google/protobuf/util/internal/protostream_objectwriter.cc", 162 "src/google/protobuf/util/internal/proto_writer.cc", 163 "src/google/protobuf/util/internal/type_info.cc", 164 "src/google/protobuf/util/internal/type_info_test_helper.cc", 165 "src/google/protobuf/util/internal/utility.cc", 166 "src/google/protobuf/util/json_util.cc", 167 "src/google/protobuf/util/message_differencer.cc", 168 "src/google/protobuf/util/time_util.cc", 169 "src/google/protobuf/util/type_resolver_util.cc", 170] 171 172// C++ full library for the NDK. 173// ======================================================= 174cc_library_static { 175 name: "libprotobuf-cpp-full-ndk", 176 defaults: ["libprotobuf-cpp-lite-defaults"], 177 178 srcs: protobuf_cc_full_src_files, 179 shared_libs: ["libz"], 180 181 cflags: ["-DGOOGLE_PROTOBUF_NO_RTTI"], 182 183 sdk_version: "9", 184 185 stl: "stlport_static", 186} 187 188// C++ full library for the NDK, Gnustl+rtti version. 189// ======================================================= 190cc_library_static { 191 name: "libprotobuf-cpp-full-ndk-gnustl-rtti", 192 defaults: ["libprotobuf-cpp-lite-defaults"], 193 194 srcs: protobuf_cc_full_src_files, 195 shared_libs: ["libz"], 196 197 rtti: true, 198 sdk_version: "14", 199 stl: "gnustl_static", 200 201} 202 203// C++ full library for the platform and host 204// ======================================================= 205cc_library_shared { 206 name: "libprotobuf-cpp-full", 207 defaults: ["libprotobuf-cpp-lite-defaults"], 208 host_supported: true, 209 vendor_available: true, 210 vndk: { 211 enabled: true, 212 }, 213 214 srcs: protobuf_cc_full_src_files, 215 216 cflags: ["-DGOOGLE_PROTOBUF_NO_RTTI"], 217 target: { 218 android: { 219 shared_libs: ["libz", "liblog"], 220 }, 221 host: { 222 shared_libs: ["libz-host"], 223 }, 224 }, 225} 226 227// C++ full library + rtti for the platform and host 228// ======================================================= 229cc_library_shared { 230 name: "libprotobuf-cpp-full-rtti", 231 defaults: ["libprotobuf-cpp-lite-defaults"], 232 vendor_available: true, 233 234 srcs: protobuf_cc_full_src_files, 235 236 rtti: true, 237 target: { 238 android: { 239 shared_libs: ["libz", "liblog"], 240 }, 241 host: { 242 shared_libs: ["libz-host"], 243 }, 244 }, 245} 246 247// Compiler library for the host 248// ======================================================= 249cc_library_host_shared { 250 name: "libprotoc", 251 defaults: ["libprotobuf-cpp-lite-defaults"], 252 253 srcs: protobuf_cc_full_src_files + [ 254 "src/google/protobuf/compiler/plugin.pb.cc", 255 ], 256 257 local_include_dirs: [ 258 "config", 259 ], 260 export_include_dirs: ["src", "config"], 261 262 rtti: true, 263 264 shared_libs: ["libz-host"], 265} 266 267// Android Protocol buffer compiler, aprotoc (host executable) 268// used by the build systems as $(PROTOC) defined in 269// build/core/config.mk 270// ======================================================= 271cc_binary_host { 272 name: "aprotoc", 273 274 target: { 275 windows: { 276 enabled: true, 277 }, 278 not_windows: { 279 host_ldlibs: ["-lpthread"], 280 }, 281 }, 282 283 // Statically link libc++ because we copy aprotoc to unbundled projects where 284 // libc++.so may not be available. 285 stl: "libc++_static", 286 287 srcs: [ 288 "src/google/protobuf/any.cc", 289 "src/google/protobuf/arena.cc", 290 "src/google/protobuf/arenastring.cc", 291 "src/google/protobuf/descriptor.cc", 292 "src/google/protobuf/descriptor.pb.cc", 293 "src/google/protobuf/descriptor_database.cc", 294 "src/google/protobuf/dynamic_message.cc", 295 "src/google/protobuf/extension_set.cc", 296 "src/google/protobuf/extension_set_heavy.cc", 297 "src/google/protobuf/generated_message_reflection.cc", 298 "src/google/protobuf/generated_message_util.cc", 299 "src/google/protobuf/map_field.cc", 300 "src/google/protobuf/message.cc", 301 "src/google/protobuf/message_lite.cc", 302 "src/google/protobuf/reflection_ops.cc", 303 "src/google/protobuf/repeated_field.cc", 304 "src/google/protobuf/service.cc", 305 "src/google/protobuf/text_format.cc", 306 "src/google/protobuf/unknown_field_set.cc", 307 "src/google/protobuf/wire_format.cc", 308 "src/google/protobuf/wire_format_lite.cc", 309 "src/google/protobuf/compiler/code_generator.cc", 310 "src/google/protobuf/compiler/command_line_interface.cc", 311 "src/google/protobuf/compiler/cpp/cpp_enum.cc", 312 "src/google/protobuf/compiler/cpp/cpp_enum_field.cc", 313 "src/google/protobuf/compiler/cpp/cpp_extension.cc", 314 "src/google/protobuf/compiler/cpp/cpp_field.cc", 315 "src/google/protobuf/compiler/cpp/cpp_file.cc", 316 "src/google/protobuf/compiler/cpp/cpp_generator.cc", 317 "src/google/protobuf/compiler/cpp/cpp_helpers.cc", 318 "src/google/protobuf/compiler/cpp/cpp_map_field.cc", 319 "src/google/protobuf/compiler/cpp/cpp_message.cc", 320 "src/google/protobuf/compiler/cpp/cpp_message_field.cc", 321 "src/google/protobuf/compiler/cpp/cpp_primitive_field.cc", 322 "src/google/protobuf/compiler/cpp/cpp_service.cc", 323 "src/google/protobuf/compiler/cpp/cpp_string_field.cc", 324 "src/google/protobuf/compiler/csharp/csharp_doc_comment.cc", 325 "src/google/protobuf/compiler/csharp/csharp_enum.cc", 326 "src/google/protobuf/compiler/csharp/csharp_enum_field.cc", 327 "src/google/protobuf/compiler/csharp/csharp_field_base.cc", 328 "src/google/protobuf/compiler/csharp/csharp_generator.cc", 329 "src/google/protobuf/compiler/csharp/csharp_helpers.cc", 330 "src/google/protobuf/compiler/csharp/csharp_map_field.cc", 331 "src/google/protobuf/compiler/csharp/csharp_message.cc", 332 "src/google/protobuf/compiler/csharp/csharp_message_field.cc", 333 "src/google/protobuf/compiler/csharp/csharp_primitive_field.cc", 334 "src/google/protobuf/compiler/csharp/csharp_reflection_class.cc", 335 "src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc", 336 "src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc", 337 "src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc", 338 "src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc", 339 "src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc", 340 "src/google/protobuf/compiler/importer.cc", 341 "src/google/protobuf/compiler/java/java_context.cc", 342 "src/google/protobuf/compiler/java/java_doc_comment.cc", 343 "src/google/protobuf/compiler/java/java_enum.cc", 344 "src/google/protobuf/compiler/java/java_enum_field.cc", 345 "src/google/protobuf/compiler/java/java_enum_field_lite.cc", 346 "src/google/protobuf/compiler/java/java_enum_lite.cc", 347 "src/google/protobuf/compiler/java/java_extension.cc", 348 "src/google/protobuf/compiler/java/java_extension_lite.cc", 349 "src/google/protobuf/compiler/java/java_field.cc", 350 "src/google/protobuf/compiler/java/java_file.cc", 351 "src/google/protobuf/compiler/java/java_generator.cc", 352 "src/google/protobuf/compiler/java/java_generator_factory.cc", 353 "src/google/protobuf/compiler/java/java_helpers.cc", 354 "src/google/protobuf/compiler/java/java_lazy_message_field.cc", 355 "src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc", 356 "src/google/protobuf/compiler/java/java_map_field.cc", 357 "src/google/protobuf/compiler/java/java_map_field_lite.cc", 358 "src/google/protobuf/compiler/java/java_message_builder.cc", 359 "src/google/protobuf/compiler/java/java_message_builder_lite.cc", 360 "src/google/protobuf/compiler/java/java_message.cc", 361 "src/google/protobuf/compiler/java/java_message_field.cc", 362 "src/google/protobuf/compiler/java/java_message_field_lite.cc", 363 "src/google/protobuf/compiler/java/java_message_lite.cc", 364 "src/google/protobuf/compiler/java/java_name_resolver.cc", 365 "src/google/protobuf/compiler/java/java_primitive_field.cc", 366 "src/google/protobuf/compiler/java/java_primitive_field_lite.cc", 367 "src/google/protobuf/compiler/java/java_service.cc", 368 "src/google/protobuf/compiler/java/java_shared_code_generator.cc", 369 "src/google/protobuf/compiler/java/java_string_field.cc", 370 "src/google/protobuf/compiler/java/java_string_field_lite.cc", 371 "src/google/protobuf/compiler/javamicro/javamicro_enum.cc", 372 "src/google/protobuf/compiler/javamicro/javamicro_enum_field.cc", 373 "src/google/protobuf/compiler/javamicro/javamicro_field.cc", 374 "src/google/protobuf/compiler/javamicro/javamicro_file.cc", 375 "src/google/protobuf/compiler/javamicro/javamicro_generator.cc", 376 "src/google/protobuf/compiler/javamicro/javamicro_helpers.cc", 377 "src/google/protobuf/compiler/javamicro/javamicro_message.cc", 378 "src/google/protobuf/compiler/javamicro/javamicro_message_field.cc", 379 "src/google/protobuf/compiler/javamicro/javamicro_primitive_field.cc", 380 "src/google/protobuf/compiler/javanano/javanano_enum.cc", 381 "src/google/protobuf/compiler/javanano/javanano_enum_field.cc", 382 "src/google/protobuf/compiler/javanano/javanano_extension.cc", 383 "src/google/protobuf/compiler/javanano/javanano_field.cc", 384 "src/google/protobuf/compiler/javanano/javanano_file.cc", 385 "src/google/protobuf/compiler/javanano/javanano_generator.cc", 386 "src/google/protobuf/compiler/javanano/javanano_helpers.cc", 387 "src/google/protobuf/compiler/javanano/javanano_map_field.cc", 388 "src/google/protobuf/compiler/javanano/javanano_message.cc", 389 "src/google/protobuf/compiler/javanano/javanano_message_field.cc", 390 "src/google/protobuf/compiler/javanano/javanano_primitive_field.cc", 391 "src/google/protobuf/compiler/js/js_generator.cc", 392 "src/google/protobuf/compiler/main.cc", 393 "src/google/protobuf/compiler/objectivec/objectivec_enum.cc", 394 "src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc", 395 "src/google/protobuf/compiler/objectivec/objectivec_extension.cc", 396 "src/google/protobuf/compiler/objectivec/objectivec_field.cc", 397 "src/google/protobuf/compiler/objectivec/objectivec_file.cc", 398 "src/google/protobuf/compiler/objectivec/objectivec_generator.cc", 399 "src/google/protobuf/compiler/objectivec/objectivec_helpers.cc", 400 "src/google/protobuf/compiler/objectivec/objectivec_map_field.cc", 401 "src/google/protobuf/compiler/objectivec/objectivec_message.cc", 402 "src/google/protobuf/compiler/objectivec/objectivec_message_field.cc", 403 "src/google/protobuf/compiler/objectivec/objectivec_oneof.cc", 404 "src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc", 405 "src/google/protobuf/compiler/parser.cc", 406 "src/google/protobuf/compiler/plugin.cc", 407 "src/google/protobuf/compiler/plugin.pb.cc", 408 "src/google/protobuf/compiler/python/python_generator.cc", 409 "src/google/protobuf/compiler/ruby/ruby_generator.cc", 410 "src/google/protobuf/compiler/subprocess.cc", 411 "src/google/protobuf/compiler/zip_writer.cc", 412 "src/google/protobuf/io/coded_stream.cc", 413 "src/google/protobuf/io/gzip_stream.cc", 414 "src/google/protobuf/io/printer.cc", 415 "src/google/protobuf/io/strtod.cc", 416 "src/google/protobuf/io/tokenizer.cc", 417 "src/google/protobuf/io/zero_copy_stream.cc", 418 "src/google/protobuf/io/zero_copy_stream_impl.cc", 419 "src/google/protobuf/io/zero_copy_stream_impl_lite.cc", 420 "src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc", 421 "src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc", 422 "src/google/protobuf/stubs/common.cc", 423 "src/google/protobuf/stubs/int128.cc", 424 "src/google/protobuf/stubs/once.cc", 425 "src/google/protobuf/stubs/status.cc", 426 "src/google/protobuf/stubs/stringpiece.cc", 427 "src/google/protobuf/stubs/structurally_valid.cc", 428 "src/google/protobuf/stubs/strutil.cc", 429 "src/google/protobuf/stubs/substitute.cc", 430 "src/google/protobuf/stubs/stringprintf.cc", 431 ], 432 433 local_include_dirs: [ 434 "android", 435 "src", 436 ], 437 438 static_libs: ["libz"], 439 440 cflags: IGNORED_WARNINGS, 441 442} 443