Force building ART from source for AOSP products.

This is a workaround for the problem that we cannot control from make
which APEX gets picked for deapexing.

Test: env TARGET_PRODUCT=aosp_cf_x86_64_phone \
          SOONG_CONFIG_art_module_source_build=false \
        build/soong/soong_ui.bash \
        --dumpvar-mode SOONG_CONFIG_art_module_source_build
  This shows true
Test: env TARGET_PRODUCT=cf_x86_64_phone \
          SOONG_CONFIG_art_module_source_build=false \
        build/soong/soong_ui.bash \
        --dumpvar-mode SOONG_CONFIG_art_module_source_build
  This shows false
Bug: 192006406
Bug: 172480615
Change-Id: I8990b726affeb08eabf130d20be45129a7c1c58d
This commit is contained in:
Martin Stjernholm 2021-06-29 19:20:25 +01:00
parent 525823ab95
commit 43747aafb1

View file

@ -51,6 +51,12 @@ else ifneq (,$(PRODUCT_FUCHSIA))
# Fuchsia picks out ART internal packages that aren't available in the
# prebuilt.
SOONG_CONFIG_art_module_source_build := true
else ifeq (,$(filter com.google.android.art,$(PRODUCT_PACKAGES)))
# TODO(b/192006406): There is currently no good way to control which prebuilt
# APEX (com.google.android.art or com.android.art) gets picked for deapexing
# to provide dex jars for hiddenapi and dexpreopting. Instead the AOSP APEX is
# completely disabled, and we build from source for AOSP products.
SOONG_CONFIG_art_module_source_build := true
else
# This sets the default for building ART APEXes from source rather than
# prebuilts (in packages/modules/ArtPrebuilt and prebuilt/module_sdk/art) in