From: Jean-Baptiste Queru Date: Thu, 27 Jan 2011 21:49:30 +0000 (-0800) Subject: Extra protobuf-related support X-Git-Tag: android-x86-4.4-r1~1849^2~7^2~5^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c61d4c91b6b31776665be3fcc7e4733b53e6c6e8;p=android-x86%2Fbuild.git Extra protobuf-related support Change-Id: I375d32f0bcb695ccb0603743133034941d584163 --- diff --git a/core/base_rules.mk b/core/base_rules.mk index 42bb64128..a7456e854 100644 --- a/core/base_rules.mk +++ b/core/base_rules.mk @@ -273,7 +273,12 @@ ifneq ($(proto_sources),) proto_sources_fullpath := $(addprefix $(TOP_DIR)$(LOCAL_PATH)/, $(proto_sources)) # By putting the generated java files into $(LOCAL_INTERMEDIATE_SOURCE_DIR), they will be # automatically found by the java compiling function transform-java-to-classes.jar. +ifneq ($(LOCAL_INTERMEDIATE_SOURCE_DIR),) proto_java_intemediate_dir := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/proto +else +# LOCAL_INTERMEDIATE_SOURCE_DIR may be not defined in non-java modules. +proto_java_intemediate_dir := $(intermediates)/proto +endif proto_java_sources_file_stamp := $(proto_java_intemediate_dir)/Proto.stamp proto_java_sources_dir := $(proto_java_intemediate_dir)/src @@ -285,6 +290,7 @@ $(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --javamicr else $(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --java_out endif +$(proto_java_sources_file_stamp): PRIVATE_PROTOC_FLAGS := $(LOCAL_PROTOC_FLAGS) $(proto_java_sources_file_stamp) : $(proto_sources_fullpath) $(PROTOC) $(call transform-proto-to-java) diff --git a/core/binary.mk b/core/binary.mk index 9ebf8c60f..88c356a39 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -160,6 +160,7 @@ proto_generated_objects := $(patsubst %.cc,%.o, $(proto_generated_cc_sources)) $(proto_generated_cc_sources): PRIVATE_PROTO_INCLUDES := $(TOP) $(proto_generated_cc_sources): PRIVATE_PROTO_CC_OUTPUT_DIR := $(proto_generated_cc_sources_dir) +$(proto_generated_cc_sources): PRIVATE_PROTOC_FLAGS := $(LOCAL_PROTOC_FLAGS) $(proto_generated_cc_sources): $(proto_generated_cc_sources_dir)/%.pb.cc: %.proto $(PROTOC) $(transform-proto-to-cc) diff --git a/core/clear_vars.mk b/core/clear_vars.mk index 8ed378998..9badc5595 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -101,6 +101,7 @@ LOCAL_MANIFEST_FILE:= LOCAL_BUILD_HOST_DEX:= LOCAL_DEX_PREOPT:= LOCAL_PROTOC_OPTIMIZE_TYPE:= # lite(default),micro,full +LOCAL_PROTOC_FLAGS:= # Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to # iterate over thousands of entries every time. diff --git a/core/definitions.mk b/core/definitions.mk index ac431df6a..36285b888 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -770,6 +770,7 @@ define transform-proto-to-java $(hide) $(PROTOC) \ $(addprefix --proto_path=, $(PRIVATE_PROTO_INCLUDES)) \ $(PRIVATE_PROTO_JAVA_OUTPUT_OPTION)=$(PRIVATE_PROTO_JAVA_OUTPUT_DIR) \ + $(PRIVATE_PROTOC_FLAGS) \ $(PRIVATE_PROTO_SRC_FILES) $(hide) touch $@ endef @@ -782,6 +783,7 @@ define transform-proto-to-cc @echo "Protoc: $@ <= $<" $(hide) $(PROTOC) \ $(addprefix --proto_path=, $(PRIVATE_PROTO_INCLUDES)) \ + $(PRIVATE_PROTOC_FLAGS) \ --cpp_out=$(PRIVATE_PROTO_CC_OUTPUT_DIR) $< endef