Move java renderscript support to java_renderscript.mk
Move java renderscript support to java_renderscript.mk in
preparation to moving it before aapt. Filter *.rs files
out of LOCAL_SRC_FILES and forbid them in java_common.mk
so that using *.rs files is an error if java_renderscript.mk
was not included.
Bug: 73885582
Test: m checkbuild
Change-Id: Ib37ce89daee58b025dec98f733c5a08149641afd
Merged-In: Ib37ce89daee58b025dec98f733c5a08149641afd
(cherry picked from commit 71822d6fb9
)
This commit is contained in:
parent
ec7be103d0
commit
b4ee77aefb
150
core/java.mk
150
core/java.mk
|
@ -105,155 +105,7 @@ LOCAL_INTERMEDIATE_SOURCE_DIR := $(intermediates.COMMON)/src
|
|||
###############################################################
|
||||
## .rs files: RenderScript sources to .java files and .bc files
|
||||
###############################################################
|
||||
renderscript_sources := $(filter %.rs,$(LOCAL_SRC_FILES))
|
||||
rs_generated_res_zip :=
|
||||
rs_generated_src_jar :=
|
||||
rs_compatibility_jni_libs :=
|
||||
ifneq ($(renderscript_sources),)
|
||||
renderscript_sources_fullpath := $(addprefix $(LOCAL_PATH)/, $(renderscript_sources))
|
||||
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 :=
|
||||
|
||||
ifneq (,$(LOCAL_RENDERSCRIPT_TARGET_API))
|
||||
renderscript_target_api := $(LOCAL_RENDERSCRIPT_TARGET_API)
|
||||
else
|
||||
ifneq (,$(LOCAL_SDK_VERSION))
|
||||
# Set target-api for LOCAL_SDK_VERSIONs other than current.
|
||||
ifneq (,$(filter-out current system_current test_current core_current, $(LOCAL_SDK_VERSION)))
|
||||
renderscript_target_api := $(call get-numeric-sdk-version,$(LOCAL_SDK_VERSION))
|
||||
endif
|
||||
endif # LOCAL_SDK_VERSION is set
|
||||
endif # LOCAL_RENDERSCRIPT_TARGET_API is set
|
||||
|
||||
# For 64-bit, we always have to upgrade to at least 21 for compat build.
|
||||
ifneq ($(LOCAL_RENDERSCRIPT_COMPATIBILITY),)
|
||||
ifeq ($(TARGET_IS_64_BIT),true)
|
||||
ifneq ($(filter $(RSCOMPAT_32BIT_ONLY_API_LEVELS),$(renderscript_target_api)),)
|
||||
renderscript_target_api := 21
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(LOCAL_RENDERSCRIPT_CC),)
|
||||
LOCAL_RENDERSCRIPT_CC := $(LLVM_RS_CC)
|
||||
endif
|
||||
|
||||
# Turn on all warnings and warnings as errors for RS compiles.
|
||||
# This can be disabled with LOCAL_RENDERSCRIPT_FLAGS := -Wno-error
|
||||
renderscript_flags := -Wall -Werror
|
||||
renderscript_flags += $(LOCAL_RENDERSCRIPT_FLAGS)
|
||||
|
||||
# prepend the RenderScript system include path
|
||||
ifneq ($(filter-out current system_current test_current core_current,$(LOCAL_SDK_VERSION))$(if $(TARGET_BUILD_APPS),$(filter current system_current test_current,$(LOCAL_SDK_VERSION))),)
|
||||
# if a numeric LOCAL_SDK_VERSION, or current LOCAL_SDK_VERSION with TARGET_BUILD_APPS
|
||||
LOCAL_RENDERSCRIPT_INCLUDES := \
|
||||
$(HISTORICAL_SDK_VERSIONS_ROOT)/renderscript/clang-include \
|
||||
$(HISTORICAL_SDK_VERSIONS_ROOT)/renderscript/include \
|
||||
$(LOCAL_RENDERSCRIPT_INCLUDES)
|
||||
else
|
||||
LOCAL_RENDERSCRIPT_INCLUDES := \
|
||||
$(TOPDIR)external/clang/lib/Headers \
|
||||
$(TOPDIR)frameworks/rs/script_api/include \
|
||||
$(LOCAL_RENDERSCRIPT_INCLUDES)
|
||||
endif
|
||||
|
||||
ifneq ($(LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE),)
|
||||
LOCAL_RENDERSCRIPT_INCLUDES := $(LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE)
|
||||
endif
|
||||
|
||||
bc_files := $(patsubst %.rs,%.bc, $(notdir $(renderscript_sources)))
|
||||
bc_dep_files := $(addprefix $(renderscript_intermediate.COMMON)/,$(patsubst %.bc,%.d,$(bc_files)))
|
||||
|
||||
$(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,$(rs_generated_src_jar).P,$(rs_generated_src_jar))
|
||||
|
||||
ifneq ($(LOCAL_RENDERSCRIPT_COMPATIBILITY),)
|
||||
|
||||
|
||||
ifeq ($(filter $(RSCOMPAT_32BIT_ONLY_API_LEVELS),$(renderscript_target_api)),)
|
||||
ifeq ($(TARGET_IS_64_BIT),true)
|
||||
renderscript_intermediate.bc_folder := $(renderscript_intermediate.COMMON)/res/raw/bc64/
|
||||
else
|
||||
renderscript_intermediate.bc_folder := $(renderscript_intermediate.COMMON)/res/raw/bc32/
|
||||
endif
|
||||
else
|
||||
renderscript_intermediate.bc_folder := $(renderscript_intermediate.COMMON)/res/raw/
|
||||
endif
|
||||
|
||||
rs_generated_bc := $(addprefix \
|
||||
$(renderscript_intermediate.bc_folder), $(bc_files))
|
||||
|
||||
renderscript_intermediate := $(intermediates)/renderscript
|
||||
|
||||
# We don't need the .so files in bundled branches
|
||||
# Prevent these from showing up on the device
|
||||
# One exception is librsjni.so, which is needed for
|
||||
# both native path and compat path.
|
||||
rs_jni_lib := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/librsjni.so
|
||||
LOCAL_JNI_SHARED_LIBRARIES += librsjni
|
||||
|
||||
ifneq (,$(TARGET_BUILD_APPS)$(FORCE_BUILD_RS_COMPAT))
|
||||
|
||||
rs_compatibility_jni_libs := $(addprefix \
|
||||
$(renderscript_intermediate)/librs., \
|
||||
$(patsubst %.bc,%.so, $(bc_files)))
|
||||
|
||||
$(rs_generated_src_jar): .KATI_IMPLICIT_OUTPUTS += $(rs_generated_bc)
|
||||
|
||||
rs_support_lib := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libRSSupport.so
|
||||
LOCAL_JNI_SHARED_LIBRARIES += libRSSupport
|
||||
|
||||
rs_support_io_lib :=
|
||||
# check if the target api level support USAGE_IO
|
||||
ifeq ($(filter $(RSCOMPAT_NO_USAGEIO_API_LEVELS),$(renderscript_target_api)),)
|
||||
rs_support_io_lib := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libRSSupportIO.so
|
||||
LOCAL_JNI_SHARED_LIBRARIES += libRSSupportIO
|
||||
endif
|
||||
|
||||
my_arch := $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
|
||||
ifneq (,$(filter arm64 mips64 x86_64,$(my_arch)))
|
||||
my_min_sdk_version := 21
|
||||
else
|
||||
my_min_sdk_version := $(MIN_SUPPORTED_SDK_VERSION)
|
||||
endif
|
||||
|
||||
$(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)
|
||||
$(rs_compatibility_jni_libs): PRIVATE_SDK_VERSION := $(my_min_sdk_version)
|
||||
$(rs_compatibility_jni_libs): $(renderscript_intermediate)/librs.%.so: \
|
||||
$(renderscript_intermediate.bc_folder)%.bc \
|
||||
$(SOONG_OUT_DIR)/ndk.timestamp
|
||||
$(transform-bc-to-so)
|
||||
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
LOCAL_INTERMEDIATE_TARGETS += $(rs_generated_src_jar)
|
||||
# Make sure the generated resource will be added to the apk.
|
||||
LOCAL_RESOURCE_DIR := $(renderscript_intermediate.COMMON)/res $(LOCAL_RESOURCE_DIR)
|
||||
endif
|
||||
|
||||
include $(BUILD_SYSTEM)/java_renderscript.mk
|
||||
|
||||
###########################################################
|
||||
## AIDL: Compile .aidl files to .java
|
||||
|
|
|
@ -177,7 +177,7 @@ endif # java_resource_file_groups
|
|||
#####################################
|
||||
## Warn if there is unrecognized file in LOCAL_SRC_FILES.
|
||||
my_unknown_src_files := $(filter-out \
|
||||
%.java %.aidl %.proto %.logtags %.rs, \
|
||||
%.java %.aidl %.proto %.logtags, \
|
||||
$(LOCAL_SRC_FILES) $(LOCAL_INTERMEDIATE_SOURCES) $(LOCAL_GENERATED_SOURCES))
|
||||
ifneq ($(my_unknown_src_files),)
|
||||
$(warning $(LOCAL_MODULE_MAKEFILE): $(LOCAL_MODULE): Unused source files: $(my_unknown_src_files))
|
||||
|
|
|
@ -0,0 +1,155 @@
|
|||
###############################################################
|
||||
## Renderscript support for java
|
||||
## Adds rules to convert .rs files to .java and .bc files
|
||||
###############################################################
|
||||
|
||||
renderscript_sources := $(filter %.rs,$(LOCAL_SRC_FILES))
|
||||
LOCAL_SRC_FILES := $(filter-out %.rs,$(LOCAL_SRC_FILES))
|
||||
|
||||
rs_generated_res_zip :=
|
||||
rs_generated_src_jar :=
|
||||
rs_compatibility_jni_libs :=
|
||||
ifneq ($(renderscript_sources),)
|
||||
renderscript_sources_fullpath := $(addprefix $(LOCAL_PATH)/, $(renderscript_sources))
|
||||
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 :=
|
||||
|
||||
ifneq (,$(LOCAL_RENDERSCRIPT_TARGET_API))
|
||||
renderscript_target_api := $(LOCAL_RENDERSCRIPT_TARGET_API)
|
||||
else
|
||||
ifneq (,$(LOCAL_SDK_VERSION))
|
||||
# Set target-api for LOCAL_SDK_VERSIONs other than current.
|
||||
ifneq (,$(filter-out current system_current test_current core_current, $(LOCAL_SDK_VERSION)))
|
||||
renderscript_target_api := $(call get-numeric-sdk-version,$(LOCAL_SDK_VERSION))
|
||||
endif
|
||||
endif # LOCAL_SDK_VERSION is set
|
||||
endif # LOCAL_RENDERSCRIPT_TARGET_API is set
|
||||
|
||||
# For 64-bit, we always have to upgrade to at least 21 for compat build.
|
||||
ifneq ($(LOCAL_RENDERSCRIPT_COMPATIBILITY),)
|
||||
ifeq ($(TARGET_IS_64_BIT),true)
|
||||
ifneq ($(filter $(RSCOMPAT_32BIT_ONLY_API_LEVELS),$(renderscript_target_api)),)
|
||||
renderscript_target_api := 21
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(LOCAL_RENDERSCRIPT_CC),)
|
||||
LOCAL_RENDERSCRIPT_CC := $(LLVM_RS_CC)
|
||||
endif
|
||||
|
||||
# Turn on all warnings and warnings as errors for RS compiles.
|
||||
# This can be disabled with LOCAL_RENDERSCRIPT_FLAGS := -Wno-error
|
||||
renderscript_flags := -Wall -Werror
|
||||
renderscript_flags += $(LOCAL_RENDERSCRIPT_FLAGS)
|
||||
|
||||
# prepend the RenderScript system include path
|
||||
ifneq ($(filter-out current system_current test_current core_current,$(LOCAL_SDK_VERSION))$(if $(TARGET_BUILD_APPS),$(filter current system_current test_current,$(LOCAL_SDK_VERSION))),)
|
||||
# if a numeric LOCAL_SDK_VERSION, or current LOCAL_SDK_VERSION with TARGET_BUILD_APPS
|
||||
LOCAL_RENDERSCRIPT_INCLUDES := \
|
||||
$(HISTORICAL_SDK_VERSIONS_ROOT)/renderscript/clang-include \
|
||||
$(HISTORICAL_SDK_VERSIONS_ROOT)/renderscript/include \
|
||||
$(LOCAL_RENDERSCRIPT_INCLUDES)
|
||||
else
|
||||
LOCAL_RENDERSCRIPT_INCLUDES := \
|
||||
$(TOPDIR)external/clang/lib/Headers \
|
||||
$(TOPDIR)frameworks/rs/script_api/include \
|
||||
$(LOCAL_RENDERSCRIPT_INCLUDES)
|
||||
endif
|
||||
|
||||
ifneq ($(LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE),)
|
||||
LOCAL_RENDERSCRIPT_INCLUDES := $(LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE)
|
||||
endif
|
||||
|
||||
bc_files := $(patsubst %.rs,%.bc, $(notdir $(renderscript_sources)))
|
||||
bc_dep_files := $(addprefix $(renderscript_intermediate.COMMON)/,$(patsubst %.bc,%.d,$(bc_files)))
|
||||
|
||||
$(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,$(rs_generated_src_jar).P,$(rs_generated_src_jar))
|
||||
|
||||
ifneq ($(LOCAL_RENDERSCRIPT_COMPATIBILITY),)
|
||||
|
||||
|
||||
ifeq ($(filter $(RSCOMPAT_32BIT_ONLY_API_LEVELS),$(renderscript_target_api)),)
|
||||
ifeq ($(TARGET_IS_64_BIT),true)
|
||||
renderscript_intermediate.bc_folder := $(renderscript_intermediate.COMMON)/res/raw/bc64/
|
||||
else
|
||||
renderscript_intermediate.bc_folder := $(renderscript_intermediate.COMMON)/res/raw/bc32/
|
||||
endif
|
||||
else
|
||||
renderscript_intermediate.bc_folder := $(renderscript_intermediate.COMMON)/res/raw/
|
||||
endif
|
||||
|
||||
rs_generated_bc := $(addprefix \
|
||||
$(renderscript_intermediate.bc_folder), $(bc_files))
|
||||
|
||||
renderscript_intermediate := $(intermediates)/renderscript
|
||||
|
||||
# We don't need the .so files in bundled branches
|
||||
# Prevent these from showing up on the device
|
||||
# One exception is librsjni.so, which is needed for
|
||||
# both native path and compat path.
|
||||
rs_jni_lib := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/librsjni.so
|
||||
LOCAL_JNI_SHARED_LIBRARIES += librsjni
|
||||
|
||||
ifneq (,$(TARGET_BUILD_APPS)$(FORCE_BUILD_RS_COMPAT))
|
||||
|
||||
rs_compatibility_jni_libs := $(addprefix \
|
||||
$(renderscript_intermediate)/librs., \
|
||||
$(patsubst %.bc,%.so, $(bc_files)))
|
||||
|
||||
$(rs_generated_src_jar): .KATI_IMPLICIT_OUTPUTS += $(rs_generated_bc)
|
||||
|
||||
rs_support_lib := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libRSSupport.so
|
||||
LOCAL_JNI_SHARED_LIBRARIES += libRSSupport
|
||||
|
||||
rs_support_io_lib :=
|
||||
# check if the target api level support USAGE_IO
|
||||
ifeq ($(filter $(RSCOMPAT_NO_USAGEIO_API_LEVELS),$(renderscript_target_api)),)
|
||||
rs_support_io_lib := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libRSSupportIO.so
|
||||
LOCAL_JNI_SHARED_LIBRARIES += libRSSupportIO
|
||||
endif
|
||||
|
||||
my_arch := $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
|
||||
ifneq (,$(filter arm64 mips64 x86_64,$(my_arch)))
|
||||
my_min_sdk_version := 21
|
||||
else
|
||||
my_min_sdk_version := $(MIN_SUPPORTED_SDK_VERSION)
|
||||
endif
|
||||
|
||||
$(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)
|
||||
$(rs_compatibility_jni_libs): PRIVATE_SDK_VERSION := $(my_min_sdk_version)
|
||||
$(rs_compatibility_jni_libs): $(renderscript_intermediate)/librs.%.so: \
|
||||
$(renderscript_intermediate.bc_folder)%.bc \
|
||||
$(SOONG_OUT_DIR)/ndk.timestamp
|
||||
$(transform-bc-to-so)
|
||||
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
LOCAL_INTERMEDIATE_TARGETS += $(rs_generated_src_jar)
|
||||
# Make sure the generated resource will be added to the apk.
|
||||
LOCAL_RESOURCE_DIR := $(renderscript_intermediate.COMMON)/res $(LOCAL_RESOURCE_DIR)
|
||||
endif
|
Loading…
Reference in New Issue