diff options
author | Colin Cross <ccross@android.com> | 2018-10-09 16:33:27 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2018-10-10 10:12:03 -0700 |
commit | c18757e34d61e351c9f75ed421fcfc891233e2a7 (patch) | |
tree | 46eaf691bc338d2e9268fdd74befb048f7b28cfb | |
parent | 0a69bb6c902f8b26fb08362d740babd6c97549d5 (diff) | |
download | build-c18757e34d61e351c9f75ed421fcfc891233e2a7.tar.gz |
Unnest independent dexpreopt conditionals
Most of the 6 nested conditionals are independent and can be
evaluated individually. This has a slight change in behavior,
disabling preopt for a module in the product will now override
LOCAL_DEX_PREOPT, but that seems preferable.
Test: m
Change-Id: I6a4060a78df729c34bbf6978c84993859a947bf7
-rw-r--r-- | core/dex_preopt_odex_install.mk | 73 |
1 files changed, 40 insertions, 33 deletions
diff --git a/core/dex_preopt_odex_install.mk b/core/dex_preopt_odex_install.mk index d475a00624..b1a0a23469 100644 --- a/core/dex_preopt_odex_install.mk +++ b/core/dex_preopt_odex_install.mk @@ -9,47 +9,54 @@ LOCAL_UNCOMPRESS_DEX := false ifneq (true,$(DONT_UNCOMPRESS_PRIV_APPS_DEXS)) ifeq (true,$(LOCAL_PRIVILEGED_MODULE)) LOCAL_UNCOMPRESS_DEX := true - else - ifneq (,$(filter $(PRODUCT_LOADED_BY_PRIVILEGED_MODULES), $(LOCAL_MODULE))) - LOCAL_UNCOMPRESS_DEX := true - endif # PRODUCT_LOADED_BY_PRIVILEGED_MODULES - endif # LOCAL_PRIVILEGED_MODULE + endif + + ifneq (,$(filter $(PRODUCT_LOADED_BY_PRIVILEGED_MODULES), $(LOCAL_MODULE))) + LOCAL_UNCOMPRESS_DEX := true + endif endif # DONT_UNCOMPRESS_PRIV_APPS_DEXS # Setting LOCAL_DEX_PREOPT based on WITH_DEXPREOPT, LOCAL_DEX_PREOPT, etc LOCAL_DEX_PREOPT := $(strip $(LOCAL_DEX_PREOPT)) -ifneq (true,$(WITH_DEXPREOPT)) - LOCAL_DEX_PREOPT := -else # WITH_DEXPREOPT=true - ifeq (,$(TARGET_BUILD_APPS)) # TARGET_BUILD_APPS empty - ifndef LOCAL_DEX_PREOPT # LOCAL_DEX_PREOPT undefined - ifneq ($(filter $(TARGET_OUT)/%,$(my_module_path)),) # Installed to system.img. - ifeq (,$(LOCAL_APK_LIBRARIES)) # LOCAL_APK_LIBRARIES empty - # If we have product-specific config for this module? - ifeq (disable,$(DEXPREOPT.$(TARGET_PRODUCT).$(LOCAL_MODULE).CONFIG)) - LOCAL_DEX_PREOPT := false - else - LOCAL_DEX_PREOPT := $(DEX_PREOPT_DEFAULT) - endif - else # LOCAL_APK_LIBRARIES not empty - LOCAL_DEX_PREOPT := nostripping - endif # LOCAL_APK_LIBRARIES not empty - else - # Default to nostripping for non system preopt (enables preopt). - # Don't strip in case the oat/vdex version in system ROM doesn't match the one in other - # partitions. It needs to be able to fall back to the APK for that case. - # Also only enable preopt for non tests. - ifeq (,$(filter $(LOCAL_MODULE_TAGS),tests)) - LOCAL_DEX_PREOPT := nostripping - endif - endif # Installed to system.img. - endif # LOCAL_DEX_PREOPT undefined - endif # TARGET_BUILD_APPS empty -endif # WITH_DEXPREOPT=true +ifndef LOCAL_DEX_PREOPT # LOCAL_DEX_PREOPT undefined + LOCAL_DEX_PREOPT := $(DEX_PREOPT_DEFAULT) + + ifeq ($(filter $(TARGET_OUT)/%,$(my_module_path)),) # Not installed to system.img. + # Default to nostripping for non system preopt (enables preopt). + # Don't strip in case the oat/vdex version in system ROM doesn't match the one in other + # partitions. It needs to be able to fall back to the APK for that case. + LOCAL_DEX_PREOPT := nostripping + endif + + ifneq (,$(LOCAL_APK_LIBRARIES)) # LOCAL_APK_LIBRARIES not empty + LOCAL_DEX_PREOPT := nostripping + endif +endif + ifeq (false,$(LOCAL_DEX_PREOPT)) LOCAL_DEX_PREOPT := endif +# Only enable preopt for non tests. +ifneq (,$(filter $(LOCAL_MODULE_TAGS),tests)) + LOCAL_DEX_PREOPT := +endif + +# If we have product-specific config for this module? +ifeq (disable,$(DEXPREOPT.$(TARGET_PRODUCT).$(LOCAL_MODULE).CONFIG)) + LOCAL_DEX_PREOPT := +endif + +# Disable preopt for TARGET_BUILD_APPS +ifneq (,$(TARGET_BUILD_APPS)) + LOCAL_DEX_PREOPT := +endif + +# Disable preopt if not WITH_DEXPREOPT +ifneq (true,$(WITH_DEXPREOPT)) + LOCAL_DEX_PREOPT := +endif + ifdef LOCAL_UNINSTALLABLE_MODULE LOCAL_DEX_PREOPT := endif |