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.