Build rules for Renderscript compatibility library.
Bug: 7419958 Change-Id: I2e0f0bb632e6ff22b2cf1a1b96b28364637995cc
This commit is contained in:
@@ -110,6 +110,7 @@ LOCAL_MANIFEST_FILE:=
|
||||
LOCAL_RENDERSCRIPT_INCLUDES:=
|
||||
LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE:=
|
||||
LOCAL_RENDERSCRIPT_CC:=
|
||||
LOCAL_RENDERSCRIPT_COMPATIBILITY:=
|
||||
LOCAL_RENDERSCRIPT_FLAGS:=
|
||||
LOCAL_RENDERSCRIPT_TARGET_API:=
|
||||
LOCAL_BUILD_HOST_DEX:=
|
||||
|
@@ -308,6 +308,7 @@ PROGUARD := external/proguard/bin/proguard.sh
|
||||
JAVATAGS := build/tools/java-event-log-tags.py
|
||||
LLVM_RS_CC := $(HOST_OUT_EXECUTABLES)/llvm-rs-cc$(HOST_EXECUTABLE_SUFFIX)
|
||||
LLVM_RS_LINK := $(HOST_OUT_EXECUTABLES)/llvm-rs-link$(HOST_EXECUTABLE_SUFFIX)
|
||||
BCC_COMPAT := $(HOST_OUT_EXECUTABLES)/bcc_compat$(HOST_EXECUTABLE_SUFFIX)
|
||||
DEXOPT := $(HOST_OUT_EXECUTABLES)/dexopt$(HOST_EXECUTABLE_SUFFIX)
|
||||
DEXPREOPT := dalvik/tools/dex-preopt
|
||||
LINT := prebuilts/sdk/tools/lint
|
||||
|
@@ -819,6 +819,16 @@ $(hide) mkdir -p $(dir $@)
|
||||
$(hide) touch $@
|
||||
endef
|
||||
|
||||
define transform-bc-to-so
|
||||
@echo "Renderscript compatibility"
|
||||
$(hide) mkdir -p $(dir $@)
|
||||
$(hide) $(BCC_COMPAT) -o $(dir $@)/$(notdir $(<:.bc=.o)) -fPIC -shared \
|
||||
-rt-path $(TARGET_OUT_SHARED_LIBRARIES)/libclcore.bc $<
|
||||
$(hide) $(PRIVATE_CXX) -shared -Wl,-soname,$(notdir $@) \
|
||||
$(dir $@)/$(notdir $(<:.bc=.o)) -o $@ -L prebuilts/gcc/ \
|
||||
-L $(TARGET_OUT_INTERMEDIATE_LIBRARIES) -lRSSupport -lm
|
||||
endef
|
||||
|
||||
###########################################################
|
||||
## Commands to compile RenderScript to C++
|
||||
###########################################################
|
||||
|
20
core/java.mk
20
core/java.mk
@@ -195,6 +195,26 @@ $(RenderScript_file_stamp): PRIVATE_RS_TARGET_API := $(renderscript_target_api)
|
||||
$(RenderScript_file_stamp): $(renderscript_sources_fullpath) $(LOCAL_RENDERSCRIPT_CC)
|
||||
$(transform-renderscripts-to-java-and-bc)
|
||||
|
||||
ifneq ($(LOCAL_RENDERSCRIPT_COMPATIBILITY),)
|
||||
bc_files := $(patsubst %.fs,%.bc, $(patsubst %.rs,%.bc, $(notdir $(renderscript_sources))))
|
||||
rs_generated_bc := $(addprefix \
|
||||
$(renderscript_intermediate)/res/raw/, $(bc_files))
|
||||
|
||||
rs_compatibility_jni_libs := $(addprefix \
|
||||
$(renderscript_intermediate)/lib, \
|
||||
$(patsubst %.bc,%.so, $(bc_files)))
|
||||
|
||||
$(rs_generated_bc) : $(RenderScript_file_stamp)
|
||||
|
||||
$(rs_compatibility_jni_libs): $(RenderScript_file_stamp)
|
||||
$(rs_compatibility_jni_libs): $(BCC_COMPAT)
|
||||
$(rs_compatibility_jni_libs): PRIVATE_CXX := $(TARGET_CXX)
|
||||
$(rs_compatibility_jni_libs): $(renderscript_intermediate)/lib%.so: \
|
||||
$(renderscript_intermediate)/res/raw/%.bc
|
||||
$(transform-bc-to-so)
|
||||
|
||||
endif
|
||||
|
||||
# include the dependency files (.d) generated by llvm-rs-cc.
|
||||
renderscript_generated_dep_files := $(addprefix $(renderscript_intermediate)/, \
|
||||
$(patsubst %.fs,%.d, $(patsubst %.rs,%.d, $(notdir $(renderscript_sources)))))
|
||||
|
@@ -191,6 +191,8 @@ endif # LOCAL_SDK_VERSION
|
||||
endif # EMMA_INSTRUMENT_STATIC
|
||||
endif # LOCAL_EMMA_INSTRUMENT
|
||||
|
||||
rs_compatibility_jni_libs :=
|
||||
|
||||
#################################
|
||||
include $(BUILD_SYSTEM)/java.mk
|
||||
#################################
|
||||
@@ -324,6 +326,12 @@ jni_shared_libraries := \
|
||||
$(addsuffix $(so_suffix), \
|
||||
$(LOCAL_JNI_SHARED_LIBRARIES)))
|
||||
|
||||
# Include RS dynamically-generated libraries as well
|
||||
# Keep this ifneq, as the += otherwise adds spaces that need to be stripped.
|
||||
ifneq ($(rs_compatibility_jni_libs),)
|
||||
jni_shared_libraries += $(rs_compatibility_jni_libs)
|
||||
endif
|
||||
|
||||
# App explicitly requires the prebuilt NDK libstlport_shared.so.
|
||||
# libstlport_shared.so should never go to the system image.
|
||||
# Instead it should be packaged into the apk.
|
||||
|
Reference in New Issue
Block a user