Build the ART module from source if other Mainline modules are.
Test: env MODULES_BUILD_FROM_SOURCE=true \
TARGET_PRODUCT=cf_x86_64_phone build/soong/soong_ui.bash \
--dumpvar-mode SOONG_CONFIG_art_module_source_build
returns true
Test: env TARGET_PRODUCT=cf_x86_64_phone build/soong/soong_ui.bash \
--dumpvar-mode SOONG_CONFIG_art_module_source_build
returns false
Bug: 191978129
Change-Id: I718d3878e9d5f5e710fa3d835a209184b633af48
diff --git a/core/android_soong_config_vars.mk b/core/android_soong_config_vars.mk
index 1124b12..69e4679 100644
--- a/core/android_soong_config_vars.mk
+++ b/core/android_soong_config_vars.mk
@@ -41,6 +41,9 @@
# Always build from source for the module targets. This ought to be covered by
# the TARGET_BUILD_APPS check above, but there are test builds that don't set it.
SOONG_CONFIG_art_module_source_build := true
+else ifdef MODULES_BUILD_FROM_SOURCE
+ # Build from source if other Mainline modules are.
+ SOONG_CONFIG_art_module_source_build := true
else ifneq (,$(filter true,$(NATIVE_COVERAGE) $(CLANG_COVERAGE)))
# Always build ART APEXes from source in coverage builds since the prebuilts
# aren't built with instrumentation.