Disable verify_uses_libraries check if dexpreopt is globally disabled.
Without dexpreopt the check is not necessary, and although it is good to
have, it is difficult to maintain on non-linux build platforms where
dexpreopt is generally disabled (the check may fail due to various
unrelated reasons, such as a failure to get manifest from an APK).
Bug: 181570790
Bug: 132357300
Test: Emulate the failed no-dexpreopt build in b/181570790:
- modify verify_uses_libraries to make a subcommand fail
- check that the build with dexpreopt fails:
$ lunch cf_x86_64_phone-userdebug && m
- set `WITH_DEXPREOPT := false` in make/core/board_config.mk
- check that the build without dexpreopt succeeds (allow boot image
and system servert dexproept to avoid unrelated build failures, this
does not affect verify_uses_libraries):
$ WITH_DEXPREOPT_BOOT_IMG_AND_SYSTEM_SERVER_ONLY=true \
lunch cf_x86_64_phone-userdebug && m
Change-Id: Ic456be4e3047a60415a21fae658077165fb03165
diff --git a/core/app_prebuilt_internal.mk b/core/app_prebuilt_internal.mk
index ad96b5b..d47930c 100644
--- a/core/app_prebuilt_internal.mk
+++ b/core/app_prebuilt_internal.mk
@@ -102,6 +102,15 @@
endif
endif
+# Disable verify_uses_libraries check if dexpreopt is globally disabled.
+# Without dexpreopt the check is not necessary, and although it is good to have,
+# it is difficult to maintain on non-linux build platforms where dexpreopt is
+# generally disabled (the check may fail due to various unrelated reasons, such
+# as a failure to get manifest from an APK).
+ifneq ($(WITH_DEXPREOPT),true)
+ LOCAL_ENFORCE_USES_LIBRARIES :=
+endif
+
my_enforced_uses_libraries :=
ifdef LOCAL_ENFORCE_USES_LIBRARIES
my_enforced_uses_libraries := $(intermediates.COMMON)/enforce_uses_libraries.status