forked from openkylin/platform_build
Merge "Use dependency files generated by llvm-rs-cc for Java" am: e786d21854
am: 2f4b8a042c
* commit '2f4b8a042cacf2667d9704ef2e59373b6a2591cc':
Use dependency files generated by llvm-rs-cc for Java
This commit is contained in:
commit
87bc53a281
|
@ -949,6 +949,24 @@ endef
|
||||||
## Commands to compile RenderScript to Java
|
## Commands to compile RenderScript to Java
|
||||||
###########################################################
|
###########################################################
|
||||||
|
|
||||||
|
## Merge multiple .d files generated by llvm-rs-cc. This is necessary
|
||||||
|
## because ninja can handle only a single depfile per build target.
|
||||||
|
## .d files generated by llvm-rs-cc define .stamp, .bc, and optionally
|
||||||
|
## .java as build targets. However, there's no way to let ninja know
|
||||||
|
## dependencies to .bc files and .java files, so we give up build
|
||||||
|
## targets for them. As we write the .stamp file as the target by
|
||||||
|
## ourselves, the awk script removes the first lines before the colon
|
||||||
|
## and append a backslash to the last line to concatenate contents of
|
||||||
|
## multiple files.
|
||||||
|
# $(1): .d files to be merged
|
||||||
|
# $(2): merged .d file
|
||||||
|
define _merge-renderscript-d
|
||||||
|
$(hide) echo '$@: $(backslash)' > $2
|
||||||
|
$(foreach d,$1, \
|
||||||
|
$(hide) awk 'start { sub(/( \\)?$$/, " \\"); print } /:/ { start=1 }' < $d >> $2$(newline))
|
||||||
|
$(hide) echo >> $2
|
||||||
|
endef
|
||||||
|
|
||||||
define transform-renderscripts-to-java-and-bc
|
define transform-renderscripts-to-java-and-bc
|
||||||
@echo "RenderScript: $(PRIVATE_MODULE) <= $(PRIVATE_RS_SOURCE_FILES)"
|
@echo "RenderScript: $(PRIVATE_MODULE) <= $(PRIVATE_RS_SOURCE_FILES)"
|
||||||
$(hide) rm -rf $(PRIVATE_RS_OUTPUT_DIR)
|
$(hide) rm -rf $(PRIVATE_RS_OUTPUT_DIR)
|
||||||
|
@ -963,8 +981,8 @@ $(hide) $(PRIVATE_RS_CC) \
|
||||||
$(PRIVATE_RS_FLAGS) \
|
$(PRIVATE_RS_FLAGS) \
|
||||||
$(foreach inc,$(PRIVATE_RS_INCLUDES),$(addprefix -I , $(inc))) \
|
$(foreach inc,$(PRIVATE_RS_INCLUDES),$(addprefix -I , $(inc))) \
|
||||||
$(PRIVATE_RS_SOURCE_FILES)
|
$(PRIVATE_RS_SOURCE_FILES)
|
||||||
$(foreach d,$(PRIVATE_DEP_FILES),\
|
$(call _merge-renderscript-d,$(PRIVATE_DEP_FILES),$@.d)
|
||||||
$(call transform-d-to-p-args,$(d),$(d:%.d=%.P))$(newline))
|
$(call transform-d-to-p-args,$@.d,$@.P)
|
||||||
$(hide) mkdir -p $(dir $@)
|
$(hide) mkdir -p $(dir $@)
|
||||||
$(hide) touch $@
|
$(hide) touch $@
|
||||||
endef
|
endef
|
||||||
|
@ -987,24 +1005,6 @@ endef
|
||||||
## Commands to compile RenderScript to C++
|
## Commands to compile RenderScript to C++
|
||||||
###########################################################
|
###########################################################
|
||||||
|
|
||||||
## Merge multiple .d files generated by llvm-rs-cc. This is necessary
|
|
||||||
## because ninja can handle only a single depfile per build target.
|
|
||||||
## We assume .d files start with two targets and their prerequisites
|
|
||||||
## follow. The first line is for the stamp file and the second line is
|
|
||||||
## for .bc file. There's no way to let ninja know dependencies to .bc
|
|
||||||
## files, so we give up build targets for .bc files. As we write the
|
|
||||||
## .stamp file as the target by ourselves, the sed script removes the
|
|
||||||
## first two lines and append a backslash to the last line to
|
|
||||||
## concatenate contents of multiple files.
|
|
||||||
# $(1): .d files to be merged
|
|
||||||
# $(2): merged .d file
|
|
||||||
define _merge-renderscript-d
|
|
||||||
$(hide) echo '$@: $(backslash)' > $2
|
|
||||||
$(foreach d,$1, \
|
|
||||||
$(hide) sed '1d; 2d; s/\( \\\)\?$$/ \\/' $d >> $2$(newline))
|
|
||||||
$(hide) echo >> $2
|
|
||||||
endef
|
|
||||||
|
|
||||||
define transform-renderscripts-to-cpp-and-bc
|
define transform-renderscripts-to-cpp-and-bc
|
||||||
@echo "RenderScript: $(PRIVATE_MODULE) <= $(PRIVATE_RS_SOURCE_FILES)"
|
@echo "RenderScript: $(PRIVATE_MODULE) <= $(PRIVATE_RS_SOURCE_FILES)"
|
||||||
$(hide) rm -rf $(PRIVATE_RS_OUTPUT_DIR)
|
$(hide) rm -rf $(PRIVATE_RS_OUTPUT_DIR)
|
||||||
|
|
|
@ -218,7 +218,7 @@ $(RenderScript_file_stamp): $(renderscript_sources_fullpath) $(LOCAL_RENDERSCRIP
|
||||||
$(transform-renderscripts-to-java-and-bc)
|
$(transform-renderscripts-to-java-and-bc)
|
||||||
|
|
||||||
# include the dependency files (.d/.P) generated by llvm-rs-cc.
|
# include the dependency files (.d/.P) generated by llvm-rs-cc.
|
||||||
-include $(bc_dep_files:%.d=%.P)
|
$(call include-depfile,$(RenderScript_file_stamp).P,$(RenderScript_file_stamp))
|
||||||
|
|
||||||
ifneq ($(LOCAL_RENDERSCRIPT_COMPATIBILITY),)
|
ifneq ($(LOCAL_RENDERSCRIPT_COMPATIBILITY),)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue