# Copyright (C) 2009 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # LOCAL_PATH := $(call my-dir) IGNORED_WARNINGS := -Wno-sign-compare -Wno-unused-parameter -Wno-sign-promo -Wno-error=return-type CC_LITE_SRC_FILES := \ src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc \ src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc \ src/google/protobuf/stubs/common.cc \ src/google/protobuf/stubs/once.cc \ src/google/protobuf/stubs/hash.h \ src/google/protobuf/stubs/map_util.h \ src/google/protobuf/stubs/shared_ptr.h \ src/google/protobuf/stubs/stringprintf.cc \ src/google/protobuf/stubs/stringprintf.h \ src/google/protobuf/extension_set.cc \ src/google/protobuf/generated_message_util.cc \ src/google/protobuf/message_lite.cc \ src/google/protobuf/repeated_field.cc \ src/google/protobuf/wire_format_lite.cc \ src/google/protobuf/io/coded_stream.cc \ src/google/protobuf/io/coded_stream_inl.h \ src/google/protobuf/io/zero_copy_stream.cc \ src/google/protobuf/io/zero_copy_stream_impl_lite.cc JAVA_LITE_SRC_FILES := \ java/src/main/java/com/google/protobuf/UninitializedMessageException.java \ java/src/main/java/com/google/protobuf/MessageLite.java \ java/src/main/java/com/google/protobuf/InvalidProtocolBufferException.java \ java/src/main/java/com/google/protobuf/CodedOutputStream.java \ java/src/main/java/com/google/protobuf/ByteString.java \ java/src/main/java/com/google/protobuf/CodedInputStream.java \ java/src/main/java/com/google/protobuf/ExtensionRegistryLite.java \ java/src/main/java/com/google/protobuf/AbstractMessageLite.java \ java/src/main/java/com/google/protobuf/AbstractParser.java \ java/src/main/java/com/google/protobuf/FieldSet.java \ java/src/main/java/com/google/protobuf/Internal.java \ java/src/main/java/com/google/protobuf/WireFormat.java \ java/src/main/java/com/google/protobuf/GeneratedMessageLite.java \ java/src/main/java/com/google/protobuf/BoundedByteString.java \ java/src/main/java/com/google/protobuf/LazyField.java \ java/src/main/java/com/google/protobuf/LazyFieldLite.java \ java/src/main/java/com/google/protobuf/LazyStringList.java \ java/src/main/java/com/google/protobuf/LazyStringArrayList.java \ java/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java \ java/src/main/java/com/google/protobuf/LiteralByteString.java \ java/src/main/java/com/google/protobuf/MessageLiteOrBuilder.java \ java/src/main/java/com/google/protobuf/Parser.java \ java/src/main/java/com/google/protobuf/ProtocolStringList.java \ java/src/main/java/com/google/protobuf/RopeByteString.java \ java/src/main/java/com/google/protobuf/SmallSortedMap.java \ java/src/main/java/com/google/protobuf/Utf8.java # This contains more source files than needed for the full version, but the # additional files should not create any conflict. JAVA_FULL_SRC_FILES := \ $(call all-java-files-under, java/src/main/java) \ src/google/protobuf/descriptor.proto COMPILER_SRC_FILES := \ src/google/protobuf/descriptor.cc \ src/google/protobuf/descriptor.pb.cc \ src/google/protobuf/descriptor_database.cc \ src/google/protobuf/dynamic_message.cc \ src/google/protobuf/extension_set.cc \ src/google/protobuf/extension_set_heavy.cc \ src/google/protobuf/generated_message_reflection.cc \ src/google/protobuf/generated_message_util.cc \ src/google/protobuf/message.cc \ src/google/protobuf/message_lite.cc \ src/google/protobuf/reflection_ops.cc \ src/google/protobuf/repeated_field.cc \ src/google/protobuf/service.cc \ src/google/protobuf/text_format.cc \ src/google/protobuf/unknown_field_set.cc \ src/google/protobuf/wire_format.cc \ src/google/protobuf/wire_format_lite.cc \ src/google/protobuf/compiler/code_generator.cc \ src/google/protobuf/compiler/command_line_interface.cc \ src/google/protobuf/compiler/importer.cc \ src/google/protobuf/compiler/main.cc \ src/google/protobuf/compiler/parser.cc \ src/google/protobuf/compiler/plugin.cc \ src/google/protobuf/compiler/plugin.pb.cc \ src/google/protobuf/compiler/subprocess.cc \ src/google/protobuf/compiler/zip_writer.cc \ src/google/protobuf/compiler/cpp/cpp_enum.cc \ src/google/protobuf/compiler/cpp/cpp_enum_field.cc \ src/google/protobuf/compiler/cpp/cpp_extension.cc \ src/google/protobuf/compiler/cpp/cpp_field.cc \ src/google/protobuf/compiler/cpp/cpp_file.cc \ src/google/protobuf/compiler/cpp/cpp_generator.cc \ src/google/protobuf/compiler/cpp/cpp_helpers.cc \ src/google/protobuf/compiler/cpp/cpp_message.cc \ src/google/protobuf/compiler/cpp/cpp_message_field.cc \ src/google/protobuf/compiler/cpp/cpp_primitive_field.cc \ src/google/protobuf/compiler/cpp/cpp_service.cc \ src/google/protobuf/compiler/cpp/cpp_string_field.cc \ src/google/protobuf/compiler/java/java_context.cc \ src/google/protobuf/compiler/java/java_enum.cc \ src/google/protobuf/compiler/java/java_enum_field.cc \ src/google/protobuf/compiler/java/java_extension.cc \ src/google/protobuf/compiler/java/java_field.cc \ src/google/protobuf/compiler/java/java_file.cc \ src/google/protobuf/compiler/java/java_generator.cc \ src/google/protobuf/compiler/java/java_generator_factory.cc \ src/google/protobuf/compiler/java/java_helpers.cc \ src/google/protobuf/compiler/java/java_lazy_message_field.cc \ src/google/protobuf/compiler/java/java_message.cc \ src/google/protobuf/compiler/java/java_message_field.cc \ src/google/protobuf/compiler/java/java_name_resolver.cc \ src/google/protobuf/compiler/java/java_primitive_field.cc \ src/google/protobuf/compiler/java/java_shared_code_generator.cc \ src/google/protobuf/compiler/java/java_service.cc \ src/google/protobuf/compiler/java/java_string_field.cc \ src/google/protobuf/compiler/java/java_doc_comment.cc \ src/google/protobuf/compiler/javamicro/javamicro_enum.cc \ src/google/protobuf/compiler/javamicro/javamicro_enum_field.cc \ src/google/protobuf/compiler/javamicro/javamicro_field.cc \ src/google/protobuf/compiler/javamicro/javamicro_file.cc \ src/google/protobuf/compiler/javamicro/javamicro_generator.cc \ src/google/protobuf/compiler/javamicro/javamicro_helpers.cc \ src/google/protobuf/compiler/javamicro/javamicro_message.cc \ src/google/protobuf/compiler/javamicro/javamicro_message_field.cc \ src/google/protobuf/compiler/javamicro/javamicro_primitive_field.cc \ src/google/protobuf/compiler/javanano/javanano_enum.cc \ src/google/protobuf/compiler/javanano/javanano_enum_field.cc \ src/google/protobuf/compiler/javanano/javanano_extension.cc \ src/google/protobuf/compiler/javanano/javanano_field.cc \ src/google/protobuf/compiler/javanano/javanano_file.cc \ src/google/protobuf/compiler/javanano/javanano_generator.cc \ src/google/protobuf/compiler/javanano/javanano_helpers.cc \ src/google/protobuf/compiler/javanano/javanano_message.cc \ src/google/protobuf/compiler/javanano/javanano_message_field.cc \ src/google/protobuf/compiler/javanano/javanano_primitive_field.cc \ src/google/protobuf/compiler/python/python_generator.cc \ src/google/protobuf/io/coded_stream.cc \ src/google/protobuf/io/gzip_stream.cc \ src/google/protobuf/io/printer.cc \ src/google/protobuf/io/strtod.cc \ src/google/protobuf/io/tokenizer.cc \ src/google/protobuf/io/zero_copy_stream.cc \ src/google/protobuf/io/zero_copy_stream_impl.cc \ src/google/protobuf/io/zero_copy_stream_impl_lite.cc \ src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc \ src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc \ src/google/protobuf/stubs/common.cc \ src/google/protobuf/stubs/once.cc \ src/google/protobuf/stubs/structurally_valid.cc \ src/google/protobuf/stubs/strutil.cc \ src/google/protobuf/stubs/substitute.cc \ src/google/protobuf/stubs/stringprintf.cc # Java nano library (for device-side users) # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := libprotobuf-java-nano LOCAL_MODULE_TAGS := optional LOCAL_SDK_VERSION := 8 LOCAL_SRC_FILES := $(call all-java-files-under, java/src/main/java/com/google/protobuf/nano) LOCAL_SRC_FILES += $(call all-java-files-under, java/src/device/main/java/com/google/protobuf/nano) include $(BUILD_STATIC_JAVA_LIBRARY) # Java nano library (for host-side users) # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := host-libprotobuf-java-nano LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-files-under, java/src/main/java/com/google/protobuf/nano) include $(BUILD_HOST_JAVA_LIBRARY) # Java micro library (for device-side users) # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := libprotobuf-java-micro LOCAL_MODULE_TAGS := optional LOCAL_SDK_VERSION := 8 LOCAL_SRC_FILES := $(call all-java-files-under, java/src/main/java/com/google/protobuf/micro) include $(BUILD_STATIC_JAVA_LIBRARY) # Java micro library (for host-side users) # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := host-libprotobuf-java-micro LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-files-under, java/src/main/java/com/google/protobuf/micro) include $(BUILD_HOST_JAVA_LIBRARY) # Java lite library (for device-side users) # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := libprotobuf-java-lite LOCAL_MODULE_TAGS := optional LOCAL_SDK_VERSION := 9 LOCAL_SRC_FILES := $(JAVA_LITE_SRC_FILES) include $(BUILD_STATIC_JAVA_LIBRARY) # Java lite library (for host-side users) # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := host-libprotobuf-java-lite LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(JAVA_LITE_SRC_FILES) include $(BUILD_HOST_JAVA_LIBRARY) # Java full library (for host-side users) # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := host-libprotobuf-java-full LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(JAVA_FULL_SRC_FILES) include $(BUILD_HOST_JAVA_LIBRARY) # C++ lite library # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := libprotobuf-cpp-lite LOCAL_MODULE_TAGS := optional LOCAL_CPP_EXTENSION := .cc LOCAL_SRC_FILES := $(CC_LITE_SRC_FILES) LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/android \ $(LOCAL_PATH)/src # Define the header files to be copied #LOCAL_COPY_HEADERS := \ # src/google/protobuf/stubs/once.h \ # src/google/protobuf/stubs/common.h \ # src/google/protobuf/io/coded_stream.h \ # src/google/protobuf/generated_message_util.h \ # src/google/protobuf/repeated_field.h \ # src/google/protobuf/extension_set.h \ # src/google/protobuf/wire_format_lite_inl.h # #LOCAL_COPY_HEADERS_TO := $(LOCAL_MODULE) LOCAL_CFLAGS := -DGOOGLE_PROTOBUF_NO_RTTI $(IGNORED_WARNINGS) # These are the minimum versions and don't need to be update. ifeq ($(TARGET_ARCH),arm) LOCAL_SDK_VERSION := 8 else # x86/mips support only available from API 9. LOCAL_SDK_VERSION := 9 endif LOCAL_NDK_STL_VARIANT := stlport_static include $(BUILD_STATIC_LIBRARY) # C++ lite library (libc++ flavored for the platform) # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := libprotobuf-cpp-lite LOCAL_MODULE_TAGS := optional LOCAL_CPP_EXTENSION := .cc LOCAL_SRC_FILES := $(CC_LITE_SRC_FILES) LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/android \ $(LOCAL_PATH)/src LOCAL_CFLAGS := -DGOOGLE_PROTOBUF_NO_RTTI $(IGNORED_WARNINGS) include $(BUILD_SHARED_LIBRARY) # C++ full library # ======================================================= protobuf_cc_full_src_files := \ $(CC_LITE_SRC_FILES) \ src/google/protobuf/stubs/strutil.cc \ src/google/protobuf/stubs/strutil.h \ src/google/protobuf/stubs/substitute.cc \ src/google/protobuf/stubs/substitute.h \ src/google/protobuf/stubs/structurally_valid.cc \ src/google/protobuf/descriptor.cc \ src/google/protobuf/descriptor.pb.cc \ src/google/protobuf/descriptor_database.cc \ src/google/protobuf/dynamic_message.cc \ src/google/protobuf/extension_set_heavy.cc \ src/google/protobuf/generated_message_reflection.cc \ src/google/protobuf/message.cc \ src/google/protobuf/reflection_ops.cc \ src/google/protobuf/service.cc \ src/google/protobuf/text_format.cc \ src/google/protobuf/unknown_field_set.cc \ src/google/protobuf/wire_format.cc \ src/google/protobuf/io/gzip_stream.cc \ src/google/protobuf/io/printer.cc \ src/google/protobuf/io/strtod.cc \ src/google/protobuf/io/tokenizer.cc \ src/google/protobuf/io/zero_copy_stream_impl.cc \ src/google/protobuf/compiler/importer.cc \ src/google/protobuf/compiler/parser.cc # C++ full library - stlport version # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := libprotobuf-cpp-full LOCAL_MODULE_TAGS := optional LOCAL_CPP_EXTENSION := .cc LOCAL_SRC_FILES := $(protobuf_cc_full_src_files) LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/android \ external/zlib \ $(LOCAL_PATH)/src # Define the header files to be copied #LOCAL_COPY_HEADERS := \ # src/google/protobuf/stubs/once.h \ # src/google/protobuf/stubs/common.h \ # src/google/protobuf/io/coded_stream.h \ # src/google/protobuf/generated_message_util.h \ # src/google/protobuf/repeated_field.h \ # src/google/protobuf/extension_set.h \ # src/google/protobuf/wire_format_lite_inl.h # #LOCAL_COPY_HEADERS_TO := $(LOCAL_MODULE) LOCAL_CFLAGS := -DGOOGLE_PROTOBUF_NO_RTTI $(IGNORED_WARNINGS) # These are the minimum versions and don't need to be update. ifeq ($(TARGET_ARCH),arm) LOCAL_SDK_VERSION := 8 else # x86/mips support only available from API 9. LOCAL_SDK_VERSION := 9 endif LOCAL_NDK_STL_VARIANT := stlport_static include $(BUILD_STATIC_LIBRARY) # C++ full library - Gnustl+rtti version # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := libprotobuf-cpp-full-gnustl-rtti LOCAL_MODULE_TAGS := optional LOCAL_CPP_EXTENSION := .cc LOCAL_SRC_FILES := $(protobuf_cc_full_src_files) LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/android \ external/zlib \ $(LOCAL_PATH)/src LOCAL_CFLAGS := -frtti $(IGNORED_WARNINGS) LOCAL_SDK_VERSION := 14 LOCAL_NDK_STL_VARIANT := gnustl_static include $(BUILD_STATIC_LIBRARY) # C++ full library - libc++ version for the platform # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := libprotobuf-cpp-full LOCAL_MODULE_TAGS := optional LOCAL_CPP_EXTENSION := .cc LOCAL_SRC_FILES := $(protobuf_cc_full_src_files) LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/android \ external/zlib \ $(LOCAL_PATH)/src LOCAL_CFLAGS := -DGOOGLE_PROTOBUF_NO_RTTI $(IGNORED_WARNINGS) LOCAL_SHARED_LIBRARIES := libz include $(BUILD_SHARED_LIBRARY) # Clean temp vars protobuf_cc_full_src_files := # Android Protocol buffer compiler, aprotoc (host executable) # used by the build systems as $(PROTOC) defined in # build/core/config.mk # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := aprotoc LOCAL_MODULE_CLASS := EXECUTABLES LOCAL_MODULE_TAGS := optional # Statically link libc++ because we copy aprotoc to unbundled projects where # libc++.so may not be available. LOCAL_CXX_STL := libc++_static LOCAL_CPP_EXTENSION := .cc LOCAL_SRC_FILES := $(COMPILER_SRC_FILES) LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/android \ external/zlib \ $(LOCAL_PATH)/src LOCAL_STATIC_LIBRARIES += libz ifneq ($(HOST_OS),windows) LOCAL_LDLIBS := -lpthread endif LOCAL_CFLAGS := $(IGNORED_WARNINGS) include $(BUILD_HOST_EXECUTABLE) # To test java proto params build rules. # ======================================================= include $(CLEAR_VARS) LOCAL_MODULE := aprotoc-test-nano-params LOCAL_MODULE_TAGS := tests LOCAL_SDK_VERSION := current LOCAL_PROTOC_OPTIMIZE_TYPE := nano LOCAL_SRC_FILES := \ src/google/protobuf/unittest_import_nano.proto \ src/google/protobuf/unittest_simple_nano.proto \ src/google/protobuf/unittest_stringutf8_nano.proto \ src/google/protobuf/unittest_recursive_nano.proto LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/src LOCAL_PROTO_JAVA_OUTPUT_PARAMS := \ java_package = $(LOCAL_PATH)/src/google/protobuf/unittest_import_nano.proto|com.google.protobuf.nano, \ java_outer_classname = $(LOCAL_PATH)/src/google/protobuf/unittest_import_nano.proto|UnittestImportNano include $(BUILD_STATIC_JAVA_LIBRARY) # To test Android-specific nanoproto features. # ======================================================= include $(CLEAR_VARS) # Parcelable messages LOCAL_MODULE := android-nano-test-parcelable LOCAL_MODULE_TAGS := tests LOCAL_SDK_VERSION := current # Only needed at compile-time. LOCAL_JAVA_LIBRARIES := android-support-annotations LOCAL_PROTOC_OPTIMIZE_TYPE := nano LOCAL_SRC_FILES := src/google/protobuf/unittest_simple_nano.proto LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/src LOCAL_PROTO_JAVA_OUTPUT_PARAMS := \ parcelable_messages = true, \ generate_intdefs = true include $(BUILD_STATIC_JAVA_LIBRARY) include $(CLEAR_VARS) # Parcelable and extendable messages LOCAL_MODULE := android-nano-test-parcelable-extendable LOCAL_MODULE_TAGS := tests LOCAL_SDK_VERSION := current # Only needed at compile-time. LOCAL_JAVA_LIBRARIES := android-support-annotations LOCAL_PROTOC_OPTIMIZE_TYPE := nano LOCAL_SRC_FILES := src/google/protobuf/unittest_extension_nano.proto LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/src LOCAL_PROTO_JAVA_OUTPUT_PARAMS := \ parcelable_messages = true, \ generate_intdefs = true, \ store_unknown_fields = true include $(BUILD_STATIC_JAVA_LIBRARY) include $(CLEAR_VARS) # Test APK LOCAL_PACKAGE_NAME := NanoAndroidTest LOCAL_SDK_VERSION := 8 LOCAL_MODULE_TAGS := tests LOCAL_SRC_FILES := $(call all-java-files-under, java/src/device/test/java/com/google/protobuf/nano) LOCAL_MANIFEST_FILE := java/src/device/test/AndroidManifest.xml LOCAL_STATIC_JAVA_LIBRARIES := libprotobuf-java-nano \ android-nano-test-parcelable \ android-nano-test-parcelable-extendable LOCAL_DEX_PREOPT := false include $(BUILD_PACKAGE)