aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2018-10-09 16:33:27 -0700
committerColin Cross <ccross@android.com>2018-10-10 10:12:03 -0700
commitc18757e34d61e351c9f75ed421fcfc891233e2a7 (patch)
tree46eaf691bc338d2e9268fdd74befb048f7b28cfb
parent0a69bb6c902f8b26fb08362d740babd6c97549d5 (diff)
downloadbuild-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.mk73
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