From 5771e8cbf1e33b194a3d0856298726d1a9801c21 Mon Sep 17 00:00:00 2001 From: Dan Willemsen Date: Fri, 31 Aug 2018 15:59:23 -0700 Subject: [PATCH] Switch protoc javastream plugin to using explicit path The previous PATH=$PATH:out/... logic was incorrect, since the version in $PATH would override the one out. And now that we're limiting what's accessible via $PATH, that caused an error. Instead, ensure that all protoc plugins are specified explicitly with --plugin, then remove the PATH modification. Test: cd frameworks/base/cmds/am; mma (with protoc-gen-javastream in $PATH) Change-Id: I6690727504f67f84fdc95ed93eabdf3351e5cb0b --- core/definitions.mk | 4 ---- core/java_common.mk | 3 ++- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/core/definitions.mk b/core/definitions.mk index fa7e05292..d4cc3c684 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1178,7 +1178,6 @@ endef ########################################################### ## Commands for running protoc to compile .proto into .java ########################################################### -# PATH contains HOST_OUT_EXECUTABLES to allow protoc-gen-* plugins define transform-proto-to-java @mkdir -p $(dir $@) @@ -1186,7 +1185,6 @@ define transform-proto-to-java @rm -rf $(PRIVATE_PROTO_JAVA_OUTPUT_DIR) @mkdir -p $(PRIVATE_PROTO_JAVA_OUTPUT_DIR) $(hide) for f in $(PRIVATE_PROTO_SRC_FILES); do \ - PATH=$$PATH:$(HOST_OUT_EXECUTABLES) \ $(PROTOC) \ $(addprefix --proto_path=, $(PRIVATE_PROTO_INCLUDES)) \ $(PRIVATE_PROTO_JAVA_OUTPUT_OPTION)="$(PRIVATE_PROTO_JAVA_OUTPUT_PARAMS):$(PRIVATE_PROTO_JAVA_OUTPUT_DIR)" \ @@ -1199,13 +1197,11 @@ endef ###################################################################### ## Commands for running protoc to compile .proto into .pb.cc (or.pb.c) and .pb.h ###################################################################### -# PATH contains HOST_OUT_EXECUTABLES to allow protoc-gen-* plugins define transform-proto-to-cc @echo "Protoc: $@ <= $<" @mkdir -p $(dir $@) $(hide) \ - PATH=$$PATH:$(HOST_OUT_EXECUTABLES) \ $(PROTOC) \ $(addprefix --proto_path=, $(PRIVATE_PROTO_INCLUDES)) \ $(PRIVATE_PROTOC_FLAGS) \ diff --git a/core/java_common.mk b/core/java_common.mk index e1ec30b97..860d73c71 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -80,6 +80,7 @@ proto_java_sources_dir := $(proto_java_intemediate_dir)/src $(proto_java_sources_file_stamp): PRIVATE_PROTO_INCLUDES := $(TOP) $(proto_java_sources_file_stamp): PRIVATE_PROTO_SRC_FILES := $(proto_sources_fullpath) $(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_DIR := $(proto_java_sources_dir) +$(proto_java_sources_file_stamp): PRIVATE_PROTOC_FLAGS := $(LOCAL_PROTOC_FLAGS) ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),micro) $(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --javamicro_out else @@ -88,13 +89,13 @@ $(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --javanano else ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),stream) $(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --javastream_out +$(proto_java_sources_file_stamp): PRIVATE_PROTOC_FLAGS += --plugin=$(HOST_OUT_EXECUTABLES)/protoc-gen-javastream $(proto_java_sources_file_stamp): $(HOST_OUT_EXECUTABLES)/protoc-gen-javastream else $(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_OPTION := --java_out endif endif endif -$(proto_java_sources_file_stamp): PRIVATE_PROTOC_FLAGS := $(LOCAL_PROTOC_FLAGS) $(proto_java_sources_file_stamp): PRIVATE_PROTO_JAVA_OUTPUT_PARAMS := $(if $(filter lite,$(LOCAL_PROTOC_OPTIMIZE_TYPE)),lite$(if $(LOCAL_PROTO_JAVA_OUTPUT_PARAMS),:,),)$(LOCAL_PROTO_JAVA_OUTPUT_PARAMS) $(proto_java_sources_file_stamp) : $(proto_sources_fullpath) $(PROTOC) $(call transform-proto-to-java)