Use srcjar and resource zip as output of renderscript rules
Replace RenderScript.stamp with a srcjar, with a resource zip as
an implicit output. This makes the renderscript rules self contained,
which will make it easier to move them before aapt.
Bug: 73885582
Test: m checkbuild
Change-Id: I12d33e52019aebac6ea33271939228e4690a4173
Merged-In: I12d33e52019aebac6ea33271939228e4690a4173
(cherry picked from commit e00e2fae52
)
This commit is contained in:
parent
65c7cdf2a7
commit
ec7be103d0
|
@ -467,6 +467,9 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/compatibility_matrix.xml)
|
|||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/overlay/DisplayCutoutEmulationWide)
|
||||
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/vendor/overlay/DisplayCutoutEmulationNarrow)
|
||||
|
||||
# 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
|
||||
# ************************************************
|
||||
|
|
|
@ -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:
|
||||
|
|
46
core/java.mk
46
core/java.mk
|
@ -106,15 +106,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 :=
|
||||
|
@ -169,20 +170,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),)
|
||||
|
||||
|
@ -215,7 +216,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
|
||||
|
@ -234,7 +235,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)
|
||||
|
@ -248,10 +249,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
|
||||
|
||||
|
||||
|
@ -330,9 +330,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.
|
||||
#
|
||||
|
@ -399,7 +396,6 @@ endif
|
|||
java_sources_deps := \
|
||||
$(java_sources) \
|
||||
$(java_resource_sources) \
|
||||
$(RenderScript_file_stamp) \
|
||||
$(proto_java_sources_file_stamp) \
|
||||
$(LOCAL_SRCJARS) \
|
||||
$(LOCAL_ADDITIONAL_DEPENDENCIES)
|
||||
|
|
|
@ -405,8 +405,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)
|
||||
|
@ -434,7 +433,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)
|
||||
|
|
|
@ -174,15 +174,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 > $@
|
||||
|
|
Loading…
Reference in New Issue