diff --git a/CleanSpec.mk b/CleanSpec.mk index 5ab64b35a..079aa05e7 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -463,6 +463,9 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/manifest.xml) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/vendor/compatibility_matrix.xml) $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/compatibility_matrix.xml) +# Remove obsolete intermedates src files +$(call add-clean-step, rm -rf $(TARGET_OUT_COMMON_INTERMEDIATES)/*/*_intermediates/src/RenderScript.stamp*) + # ************************************************ # NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST # ************************************************ diff --git a/core/definitions.mk b/core/definitions.mk index b2b3bbbd9..0565603e2 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1036,9 +1036,9 @@ $(hide) $(RS_CC_ASAN_OPTIONS) $(PRIVATE_RS_CC) \ $(PRIVATE_RS_FLAGS) \ $(foreach inc,$(PRIVATE_RS_INCLUDES),$(addprefix -I , $(inc))) \ $(PRIVATE_RS_SOURCE_FILES) +$(SOONG_ZIP) -o $@ -C $(PRIVATE_RS_OUTPUT_DIR)/src -D $(PRIVATE_RS_OUTPUT_DIR)/src +$(SOONG_ZIP) -o $(PRIVATE_RS_OUTPUT_RES_ZIP) -C $(PRIVATE_RS_OUTPUT_DIR)/res -D $(PRIVATE_RS_OUTPUT_DIR)/res $(call _merge-renderscript-d,$(PRIVATE_DEP_FILES),$@.d) -$(hide) mkdir -p $(dir $@) -$(hide) touch $@ endef define transform-bc-to-so @@ -2212,8 +2212,6 @@ $(hide) if [ -d "$(PRIVATE_SOURCE_INTERMEDIATES_DIR)" ]; then \ fi $(if $(PRIVATE_HAS_PROTO_SOURCES), \ $(hide) find $(PRIVATE_PROTO_SOURCE_INTERMEDIATES_DIR) -name '*.java' -and -not -name '.*' >> $(1)) -$(if $(PRIVATE_HAS_RS_SOURCES), \ - $(hide) find $(PRIVATE_RS_SOURCE_INTERMEDIATES_DIR) -name '*.java' -and -not -name '.*' >> $(1)) endef # Some historical notes: diff --git a/core/java.mk b/core/java.mk index e2639068e..aa63d5ad7 100644 --- a/core/java.mk +++ b/core/java.mk @@ -110,15 +110,16 @@ LOCAL_INTERMEDIATE_SOURCE_DIR := $(intermediates.COMMON)/src ## .rs files: RenderScript sources to .java files and .bc files ############################################################### renderscript_sources := $(filter %.rs,$(LOCAL_SRC_FILES)) -# Because names of the java files from RenderScript are unknown until the -# .rs file(s) are compiled, we have to depend on a timestamp file. -RenderScript_file_stamp := -rs_generated_res_dir := +rs_generated_res_zip := +rs_generated_src_jar := rs_compatibility_jni_libs := ifneq ($(renderscript_sources),) renderscript_sources_fullpath := $(addprefix $(LOCAL_PATH)/, $(renderscript_sources)) -RenderScript_file_stamp := $(LOCAL_INTERMEDIATE_SOURCE_DIR)/RenderScript.stamp renderscript_intermediate.COMMON := $(intermediates.COMMON)/renderscript +rs_generated_res_zip := $(renderscript_intermediate.COMMON)/res.zip +rs_generated_src_jar := $(renderscript_intermediate.COMMON)/rs.srcjar + +LOCAL_SRCJARS += $(rs_generated_src_jar) # Defaulting to an empty string uses the latest available platform SDK. renderscript_target_api := @@ -173,20 +174,20 @@ endif bc_files := $(patsubst %.rs,%.bc, $(notdir $(renderscript_sources))) bc_dep_files := $(addprefix $(renderscript_intermediate.COMMON)/,$(patsubst %.bc,%.d,$(bc_files))) -$(RenderScript_file_stamp): PRIVATE_RS_INCLUDES := $(LOCAL_RENDERSCRIPT_INCLUDES) -$(RenderScript_file_stamp): PRIVATE_RS_CC := $(LOCAL_RENDERSCRIPT_CC) -$(RenderScript_file_stamp): PRIVATE_RS_FLAGS := $(renderscript_flags) -$(RenderScript_file_stamp): PRIVATE_RS_SOURCE_FILES := $(renderscript_sources_fullpath) -# 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. -$(RenderScript_file_stamp): PRIVATE_RS_OUTPUT_DIR := $(renderscript_intermediate.COMMON) -$(RenderScript_file_stamp): PRIVATE_RS_TARGET_API := $(renderscript_target_api) -$(RenderScript_file_stamp): PRIVATE_DEP_FILES := $(bc_dep_files) -$(RenderScript_file_stamp): $(renderscript_sources_fullpath) $(LOCAL_RENDERSCRIPT_CC) +$(rs_generated_src_jar): PRIVATE_RS_INCLUDES := $(LOCAL_RENDERSCRIPT_INCLUDES) +$(rs_generated_src_jar): PRIVATE_RS_CC := $(LOCAL_RENDERSCRIPT_CC) +$(rs_generated_src_jar): PRIVATE_RS_FLAGS := $(renderscript_flags) +$(rs_generated_src_jar): PRIVATE_RS_SOURCE_FILES := $(renderscript_sources_fullpath) +$(rs_generated_src_jar): PRIVATE_RS_OUTPUT_DIR := $(renderscript_intermediate.COMMON) +$(rs_generated_src_jar): PRIVATE_RS_TARGET_API := $(renderscript_target_api) +$(rs_generated_src_jar): PRIVATE_DEP_FILES := $(bc_dep_files) +$(rs_generated_src_jar): PRIVATE_RS_OUTPUT_RES_ZIP := $(rs_generated_res_zip) +$(rs_generated_src_jar): .KATI_IMPLICIT_OUTPUTS := $(rs_generated_res_zip) +$(rs_generated_src_jar): $(renderscript_sources_fullpath) $(LOCAL_RENDERSCRIPT_CC) $(SOONG_ZIP) $(transform-renderscripts-to-java-and-bc) # include the dependency files (.d/.P) generated by llvm-rs-cc. -$(call include-depfile,$(RenderScript_file_stamp).P,$(RenderScript_file_stamp)) +$(call include-depfile,$(rs_generated_src_jar).P,$(rs_generated_src_jar)) ifneq ($(LOCAL_RENDERSCRIPT_COMPATIBILITY),) @@ -219,7 +220,7 @@ rs_compatibility_jni_libs := $(addprefix \ $(renderscript_intermediate)/librs., \ $(patsubst %.bc,%.so, $(bc_files))) -$(rs_generated_bc) : $(RenderScript_file_stamp) +$(rs_generated_src_jar): .KATI_IMPLICIT_OUTPUTS += $(rs_generated_bc) rs_support_lib := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libRSSupport.so LOCAL_JNI_SHARED_LIBRARIES += libRSSupport @@ -238,7 +239,7 @@ else my_min_sdk_version := $(MIN_SUPPORTED_SDK_VERSION) endif -$(rs_compatibility_jni_libs): $(RenderScript_file_stamp) $(RS_PREBUILT_CLCORE) \ +$(rs_compatibility_jni_libs): $(RS_PREBUILT_CLCORE) \ $(rs_support_lib) $(rs_support_io_lib) $(rs_jni_lib) $(rs_compiler_rt) $(rs_compatibility_jni_libs): $(BCC_COMPAT) $(rs_compatibility_jni_libs): PRIVATE_CXX := $(CXX_WRAPPER) $(TARGET_CXX) @@ -252,10 +253,9 @@ endif endif -LOCAL_INTERMEDIATE_TARGETS += $(RenderScript_file_stamp) +LOCAL_INTERMEDIATE_TARGETS += $(rs_generated_src_jar) # Make sure the generated resource will be added to the apk. -rs_generated_res_dir := $(renderscript_intermediate.COMMON)/res -LOCAL_RESOURCE_DIR := $(rs_generated_res_dir) $(LOCAL_RESOURCE_DIR) +LOCAL_RESOURCE_DIR := $(renderscript_intermediate.COMMON)/res $(LOCAL_RESOURCE_DIR) endif @@ -334,9 +334,6 @@ include $(BUILD_SYSTEM)/java_common.mk include $(BUILD_SYSTEM)/sdk_check.mk -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_HAS_RS_SOURCES := $(if $(renderscript_sources),true) -$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_RS_SOURCE_INTERMEDIATES_DIR := $(intermediates.COMMON)/renderscript - # Set the profile source so that the odex / profile code included from java.mk # can find it. # @@ -403,7 +400,6 @@ endif java_sources_deps := \ $(java_sources) \ $(java_resource_sources) \ - $(RenderScript_file_stamp) \ $(proto_java_sources_file_stamp) \ $(LOCAL_SRCJARS) \ $(LOCAL_ADDITIONAL_DEPENDENCIES) diff --git a/core/package_internal.mk b/core/package_internal.mk index 858a1bfb7..9f37a917f 100644 --- a/core/package_internal.mk +++ b/core/package_internal.mk @@ -402,8 +402,7 @@ endif # LOCAL_SDK_VERSION is set endif # LOCAL_RENDERSCRIPT_TARGET_API is set ifneq (,$(renderscript_target_api)) ifneq ($(call math_gt_or_eq,$(renderscript_target_api),21),true) -my_generated_res_dirs := $(rs_generated_res_dir) -my_generated_res_dirs_deps := $(RenderScript_file_stamp) +my_generated_res_zips := $(rs_generated_res_zip) endif # renderscript_target_api < 21 endif # renderscript_target_api is set my_asset_dirs := $(LOCAL_ASSET_DIR) @@ -431,7 +430,7 @@ $(R_file_stamp): PRIVATE_RESOURCE_PUBLICS_OUTPUT := \ $(intermediates.COMMON)/public_resources.xml $(R_file_stamp): PRIVATE_PROGUARD_OPTIONS_FILE := $(proguard_options_file) $(R_file_stamp): PRIVATE_RESOURCE_LIST := $(all_res_assets) -$(R_file_stamp): $(all_res_assets) $(full_android_manifest) $(RenderScript_file_stamp) $(AAPT) | $(ACP) +$(R_file_stamp): $(all_res_assets) $(full_android_manifest) $(rs_generated_res_zip) $(AAPT) | $(ACP) @echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)" @rm -rf $@ && mkdir -p $(dir $@) $(create-resource-java-files) diff --git a/core/static_java_library.mk b/core/static_java_library.mk index 64e16c2c6..cb8527dc9 100644 --- a/core/static_java_library.mk +++ b/core/static_java_library.mk @@ -171,15 +171,14 @@ endif # LOCAL_SDK_VERSION is set endif # LOCAL_RENDERSCRIPT_TARGET_API is set ifneq (,$(renderscript_target_api)) ifneq ($(call math_gt_or_eq,$(renderscript_target_api),21),true) -my_generated_res_dirs := $(rs_generated_res_dir) -my_generated_res_dirs_deps := $(RenderScript_file_stamp) +my_generated_res_zips := $(rs_generated_res_zip) endif # renderscript_target_api < 21 endif # renderscript_target_api is set include $(BUILD_SYSTEM)/aapt2.mk $(my_res_package) : $(framework_res_package_export) else $(R_file_stamp): PRIVATE_RESOURCE_LIST := $(all_resources) -$(R_file_stamp) : $(all_resources) $(full_android_manifest) $(AAPT) $(framework_res_package_export) +$(R_file_stamp) : $(all_resources) $(full_android_manifest) $(AAPT) $(framework_res_package_export) $(rs_generated_res_zip) @echo "target R.java/Manifest.java: $(PRIVATE_MODULE) ($@)" $(create-resource-java-files) $(hide) find $(PRIVATE_SOURCE_INTERMEDIATES_DIR) -name R.java | xargs cat > $@