Refactor removing classes.dex for dexpreopt
Combining $(call dexpreopt-remove-classes.dex) into a
$(call copy-one-file) rule is hacky and error prone. Make a helper
dexpreopt-copy-jar function that takes LOCAL_DEX_PREOPT and copies
the jar, removing the dex files if necessary.
Test: only description message changes to out/build-${TARGET_PRODUCT}.ninja
Change-Id: Id2fa2d18571ca01bc81302c912b8de25f3dde7a1
This commit is contained in:
@@ -48,15 +48,6 @@ endif
|
||||
|
||||
GLOBAL_DEXPREOPT_FLAGS :=
|
||||
|
||||
# $(1): the .jar or .apk to remove classes.dex
|
||||
define dexpreopt-remove-classes.dex
|
||||
$(hide) zip --quiet --delete $(1) classes.dex; \
|
||||
dex_index=2; \
|
||||
while zip --quiet --delete $(1) classes$${dex_index}.dex > /dev/null; do \
|
||||
let dex_index=dex_index+1; \
|
||||
done
|
||||
endef
|
||||
|
||||
# Special rules for building stripped boot jars that override java_library.mk rules
|
||||
|
||||
# $(1): boot jar module name
|
||||
@@ -64,11 +55,7 @@ define _dexpreopt-boot-jar-remove-classes.dex
|
||||
_dbj_jar_no_dex := $(DEXPREOPT_BOOT_JAR_DIR_FULL_PATH)/$(1)_nodex.jar
|
||||
_dbj_src_jar := $(call intermediates-dir-for,JAVA_LIBRARIES,$(1),,COMMON)/javalib.jar
|
||||
|
||||
$$(_dbj_jar_no_dex) : $$(_dbj_src_jar)
|
||||
$$(call copy-file-to-target)
|
||||
ifneq ($(DEX_PREOPT_DEFAULT),nostripping)
|
||||
$$(call dexpreopt-remove-classes.dex,$$@)
|
||||
endif
|
||||
$(call dexpreopt-copy-jar,$$(_dbj_src_jar),$$(_dbj_jar_no_dex),$(DEX_PREOPT_DEFAULT))
|
||||
|
||||
_dbj_jar_no_dex :=
|
||||
_dbj_src_jar :=
|
||||
|
||||
Reference in New Issue
Block a user