Loading core/binary.mk +51 −2 Original line number Diff line number Diff line Loading @@ -466,10 +466,17 @@ my_generated_sources := $(patsubst $(generated_sources_dir)/%,$(intermediates)/% ALL_GENERATED_SOURCES += $(my_generated_sources) ########################################################### # PROTOC transforms ########################################################### proto_sources := $(filter %.proto,$(LOCAL_SRC_FILES)) ifneq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),nanopb-c) ########################################################### ## Compile the .proto files to .cc and then to .o ########################################################### proto_sources := $(filter %.proto,$(my_src_files)) proto_generated_objects := proto_generated_headers := ifneq ($(proto_sources),) Loading @@ -484,6 +491,7 @@ proto_generated_objects := $(addprefix $(proto_generated_obj_dir)/, \ # Auto-export the generated proto source dir. LOCAL_EXPORT_C_INCLUDE_DIRS += $(proto_generated_cc_sources_dir) $(warning wink protobuf LECID=$(LOCAL_EXPORT_C_INCLUDE_DIRS)) # Ensure the transform-proto-to-cc rule is only defined once in multilib build. ifndef $(my_prefix)_$(LOCAL_MODULE_CLASS)_$(LOCAL_MODULE)_proto_defined Loading Loading @@ -516,6 +524,46 @@ endif endif # $(proto_sources) non-empty else ########################################################### ## Compile the .proto files to nanopb-c and then to .o ########################################################### nanopb_c_generated_objects := nanopb_c_generated_headers := ifneq ($(proto_sources),) nanopb_c_sources_fullpath := $(addprefix $(LOCAL_PATH)/, $(proto_sources)) nanopb_c_generated_sources_dir := $(intermediates)/proto nanopb_c_generated_sources := $(addprefix $(nanopb_c_generated_sources_dir)/, \ $(patsubst %.proto,%.pb.c,$(nanopb_c_sources_fullpath))) nanopb_c_generated_objects := $(patsubst %.c,%.o, $(nanopb_c_generated_sources)) # Auto-export the generated proto source dir. LOCAL_EXPORT_C_INCLUDE_DIRS += $(nanopb_c_generated_sources_dir) $(warning wink nanopb LECID=$(LOCAL_EXPORT_C_INCLUDE_DIRS)) $(nanopb_c_generated_sources): PRIVATE_NANOPB_C_INCLUDES := $(TOP) $(nanopb_c_generated_sources): PRIVATE_NANOPB_C_OUTPUT_DIR := $(nanopb_c_generated_sources_dir) $(nanopb_c_generated_sources): PRIVATE_NANOPB_C_FLAGS := $(LOCAL_PROTOC_FLAGS) $(nanopb_c_generated_sources): $(nanopb_c_generated_sources_dir)/%.pb.c: %.proto $(PROTOC) $(transform-nanopb_c-to-c) nanopb_c_generated_headers := $(patsubst %.pb.c,%.pb.h, $(nanopb_c_generated_sources)) $(nanopb_c_generated_headers): $(nanopb_c_generated_sources_dir)/%.pb.h: $(nanopb_c_generated_sources_dir)/%.pb.c $(nanopb_c_generated_objects): PRIVATE_ARM_MODE := $(normal_objects_mode) $(nanopb_c_generated_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags) $(nanopb_c_generated_objects): $(nanopb_c_generated_sources_dir)/%.pb.o: $(nanopb_c_generated_sources_dir)/%.pb.c $(nanopb_c_generated_headers) $(transform-$(PRIVATE_HOST)cpp-to-o) -include $(nanopb_c_generated_objects:%.o=%.P) LOCAL_C_INCLUDES += external/nanopb-c $(dir $(nanopb_c_generated_headers)) LOCAL_STATIC_LIBRARIES += libnanopb-c-2.8.0 endif endif ########################################################### ## YACC: Compile .y and .yy files to .cpp and the to .o. ########################################################### Loading Loading @@ -813,6 +861,7 @@ normal_objects := \ $(objc_objects) \ $(yacc_objects) \ $(lex_objects) \ $(nanopb_c_generated_objects) \ $(proto_generated_objects) \ $(addprefix $(TOPDIR)$(LOCAL_PATH)/,$(LOCAL_PREBUILT_OBJ_FILES)) Loading Loading @@ -981,7 +1030,7 @@ $(LOCAL_INSTALLED_MODULE): | $(installed_static_library_notice_file_targets) export_includes := $(intermediates)/export_includes $(export_includes): PRIVATE_EXPORT_C_INCLUDE_DIRS := $(LOCAL_EXPORT_C_INCLUDE_DIRS) # Make sure .pb.h are already generated before any dependent source files get compiled. $(export_includes) : $(LOCAL_MODULE_MAKEFILE) $(proto_generated_headers) $(export_includes) : $(LOCAL_MODULE_MAKEFILE) $(proto_generated_headers) $(nanopb_c_generated_headers) @echo Export includes file: $< -- $@ $(hide) mkdir -p $(dir $@) && rm -f $@ ifdef LOCAL_EXPORT_C_INCLUDE_DIRS Loading core/clear_vars.mk +1 −1 Original line number Diff line number Diff line Loading @@ -125,7 +125,7 @@ LOCAL_RENDERSCRIPT_TARGET_API:= LOCAL_DEX_PREOPT:= # '',true,false,nostripping LOCAL_DEX_PREOPT_IMAGE_LOCATION:= LOCAL_DEX_PREOPT_FLAGS:= LOCAL_PROTOC_OPTIMIZE_TYPE:= # lite(default),micro,nano,full LOCAL_PROTOC_OPTIMIZE_TYPE:= # lite(default),micro,nano,full,nanopb-c LOCAL_PROTOC_FLAGS:= LOCAL_PROTO_JAVA_OUTPUT_PARAMS:= LOCAL_NO_CRT:= Loading core/definitions.mk +11 −0 Original line number Diff line number Diff line Loading @@ -964,6 +964,17 @@ $(hide) $(PROTOC) \ --cpp_out=$(PRIVATE_PROTO_CC_OUTPUT_DIR) $< endef ###################################################################### ## Commands for running protoc to compile .proto into nano protobuf .pb.c and .pb.h ###################################################################### define transform-nanopb_c-to-c @mkdir -p $(dir $@) @echo "Protoc: $@ <= $<" $(hide) $(PROTOC) \ $(addprefix --proto_path=, $(PRIVATE_NANOPB_C_INCLUDES)) \ $(PRIVATE_NANOPB_C_FLAGS) \ --nanopb_out=$(PRIVATE_NANOPB_C_OUTPUT_DIR) --plugin=external/nanopb-c/generator/protoc-gen-nanopb $< endef ########################################################### ## Commands for running gcc to compile a C++ file Loading Loading
core/binary.mk +51 −2 Original line number Diff line number Diff line Loading @@ -466,10 +466,17 @@ my_generated_sources := $(patsubst $(generated_sources_dir)/%,$(intermediates)/% ALL_GENERATED_SOURCES += $(my_generated_sources) ########################################################### # PROTOC transforms ########################################################### proto_sources := $(filter %.proto,$(LOCAL_SRC_FILES)) ifneq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),nanopb-c) ########################################################### ## Compile the .proto files to .cc and then to .o ########################################################### proto_sources := $(filter %.proto,$(my_src_files)) proto_generated_objects := proto_generated_headers := ifneq ($(proto_sources),) Loading @@ -484,6 +491,7 @@ proto_generated_objects := $(addprefix $(proto_generated_obj_dir)/, \ # Auto-export the generated proto source dir. LOCAL_EXPORT_C_INCLUDE_DIRS += $(proto_generated_cc_sources_dir) $(warning wink protobuf LECID=$(LOCAL_EXPORT_C_INCLUDE_DIRS)) # Ensure the transform-proto-to-cc rule is only defined once in multilib build. ifndef $(my_prefix)_$(LOCAL_MODULE_CLASS)_$(LOCAL_MODULE)_proto_defined Loading Loading @@ -516,6 +524,46 @@ endif endif # $(proto_sources) non-empty else ########################################################### ## Compile the .proto files to nanopb-c and then to .o ########################################################### nanopb_c_generated_objects := nanopb_c_generated_headers := ifneq ($(proto_sources),) nanopb_c_sources_fullpath := $(addprefix $(LOCAL_PATH)/, $(proto_sources)) nanopb_c_generated_sources_dir := $(intermediates)/proto nanopb_c_generated_sources := $(addprefix $(nanopb_c_generated_sources_dir)/, \ $(patsubst %.proto,%.pb.c,$(nanopb_c_sources_fullpath))) nanopb_c_generated_objects := $(patsubst %.c,%.o, $(nanopb_c_generated_sources)) # Auto-export the generated proto source dir. LOCAL_EXPORT_C_INCLUDE_DIRS += $(nanopb_c_generated_sources_dir) $(warning wink nanopb LECID=$(LOCAL_EXPORT_C_INCLUDE_DIRS)) $(nanopb_c_generated_sources): PRIVATE_NANOPB_C_INCLUDES := $(TOP) $(nanopb_c_generated_sources): PRIVATE_NANOPB_C_OUTPUT_DIR := $(nanopb_c_generated_sources_dir) $(nanopb_c_generated_sources): PRIVATE_NANOPB_C_FLAGS := $(LOCAL_PROTOC_FLAGS) $(nanopb_c_generated_sources): $(nanopb_c_generated_sources_dir)/%.pb.c: %.proto $(PROTOC) $(transform-nanopb_c-to-c) nanopb_c_generated_headers := $(patsubst %.pb.c,%.pb.h, $(nanopb_c_generated_sources)) $(nanopb_c_generated_headers): $(nanopb_c_generated_sources_dir)/%.pb.h: $(nanopb_c_generated_sources_dir)/%.pb.c $(nanopb_c_generated_objects): PRIVATE_ARM_MODE := $(normal_objects_mode) $(nanopb_c_generated_objects): PRIVATE_ARM_CFLAGS := $(normal_objects_cflags) $(nanopb_c_generated_objects): $(nanopb_c_generated_sources_dir)/%.pb.o: $(nanopb_c_generated_sources_dir)/%.pb.c $(nanopb_c_generated_headers) $(transform-$(PRIVATE_HOST)cpp-to-o) -include $(nanopb_c_generated_objects:%.o=%.P) LOCAL_C_INCLUDES += external/nanopb-c $(dir $(nanopb_c_generated_headers)) LOCAL_STATIC_LIBRARIES += libnanopb-c-2.8.0 endif endif ########################################################### ## YACC: Compile .y and .yy files to .cpp and the to .o. ########################################################### Loading Loading @@ -813,6 +861,7 @@ normal_objects := \ $(objc_objects) \ $(yacc_objects) \ $(lex_objects) \ $(nanopb_c_generated_objects) \ $(proto_generated_objects) \ $(addprefix $(TOPDIR)$(LOCAL_PATH)/,$(LOCAL_PREBUILT_OBJ_FILES)) Loading Loading @@ -981,7 +1030,7 @@ $(LOCAL_INSTALLED_MODULE): | $(installed_static_library_notice_file_targets) export_includes := $(intermediates)/export_includes $(export_includes): PRIVATE_EXPORT_C_INCLUDE_DIRS := $(LOCAL_EXPORT_C_INCLUDE_DIRS) # Make sure .pb.h are already generated before any dependent source files get compiled. $(export_includes) : $(LOCAL_MODULE_MAKEFILE) $(proto_generated_headers) $(export_includes) : $(LOCAL_MODULE_MAKEFILE) $(proto_generated_headers) $(nanopb_c_generated_headers) @echo Export includes file: $< -- $@ $(hide) mkdir -p $(dir $@) && rm -f $@ ifdef LOCAL_EXPORT_C_INCLUDE_DIRS Loading
core/clear_vars.mk +1 −1 Original line number Diff line number Diff line Loading @@ -125,7 +125,7 @@ LOCAL_RENDERSCRIPT_TARGET_API:= LOCAL_DEX_PREOPT:= # '',true,false,nostripping LOCAL_DEX_PREOPT_IMAGE_LOCATION:= LOCAL_DEX_PREOPT_FLAGS:= LOCAL_PROTOC_OPTIMIZE_TYPE:= # lite(default),micro,nano,full LOCAL_PROTOC_OPTIMIZE_TYPE:= # lite(default),micro,nano,full,nanopb-c LOCAL_PROTOC_FLAGS:= LOCAL_PROTO_JAVA_OUTPUT_PARAMS:= LOCAL_NO_CRT:= Loading
core/definitions.mk +11 −0 Original line number Diff line number Diff line Loading @@ -964,6 +964,17 @@ $(hide) $(PROTOC) \ --cpp_out=$(PRIVATE_PROTO_CC_OUTPUT_DIR) $< endef ###################################################################### ## Commands for running protoc to compile .proto into nano protobuf .pb.c and .pb.h ###################################################################### define transform-nanopb_c-to-c @mkdir -p $(dir $@) @echo "Protoc: $@ <= $<" $(hide) $(PROTOC) \ $(addprefix --proto_path=, $(PRIVATE_NANOPB_C_INCLUDES)) \ $(PRIVATE_NANOPB_C_FLAGS) \ --nanopb_out=$(PRIVATE_NANOPB_C_OUTPUT_DIR) --plugin=external/nanopb-c/generator/protoc-gen-nanopb $< endef ########################################################### ## Commands for running gcc to compile a C++ file Loading