From 47dcbeaefb67bb1259b0c9944228454fa7bab25a Mon Sep 17 00:00:00 2001 From: Martin Stjernholm Date: Thu, 10 Mar 2022 17:51:13 +0000 Subject: [PATCH] Build modules from source for module products. This overrides the branch default (BRANCH_DEFAULT_MODULE_BUILD_FROM_SOURCE) if it is set to use prebuilts. Test: build/soong/soong_ui.bash --dumpvar-mode MODULE_BUILD_FROM_SOURCE returns false with BRANCH_DEFAULT_MODULE_BUILD_FROM_SOURCE:=false in internal Test: env TARGET_PRODUCT=module_arm64 \ build/soong/soong_ui.bash --dumpvar-mode MODULE_BUILD_FROM_SOURCE returns true with BRANCH_DEFAULT_MODULE_BUILD_FROM_SOURCE:=false in internal Test: env TARGET_PRODUCT=mainline_modules_x86 \ build/soong/soong_ui.bash --dumpvar-mode MODULE_BUILD_FROM_SOURCE returns true with BRANCH_DEFAULT_MODULE_BUILD_FROM_SOURCE:=false in internal Test: env TARGET_PRODUCT=redfin \ build/soong/soong_ui.bash --dumpvar-mode MODULE_BUILD_FROM_SOURCE returns false with BRANCH_DEFAULT_MODULE_BUILD_FROM_SOURCE:=false in internal Bug: 222723757 Change-Id: I0faea006b0e95eff40bbfbe00cc74ba5985beeba --- core/android_soong_config_vars.mk | 10 +++------- core/product.mk | 4 ++++ target/product/module_common.mk | 4 ++++ 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/core/android_soong_config_vars.mk b/core/android_soong_config_vars.mk index 777aec5215..6c32da4269 100644 --- a/core/android_soong_config_vars.mk +++ b/core/android_soong_config_vars.mk @@ -52,9 +52,9 @@ else ifeq (,$(filter sdk win_sdk sdk_addon,$(MAKECMDGOALS))$(findstring com.goog # However, sdk/win_sdk/sdk_addon builds might not include com.google.android.xxx # packages, so for those we respect the default behavior. MODULE_BUILD_FROM_SOURCE := true -else ifeq (,$(filter-out modules_% mainline_modules_%,$(TARGET_PRODUCT))) - # Always build from source in unbundled builds using the module targets. - MODULE_BUILD_FROM_SOURCE := true +else ifneq (,$(PRODUCT_MODULE_BUILD_FROM_SOURCE)) + # Let products override the branch default. + MODULE_BUILD_FROM_SOURCE := $(PRODUCT_MODULE_BUILD_FROM_SOURCE) else MODULE_BUILD_FROM_SOURCE := $(BRANCH_DEFAULT_MODULE_BUILD_FROM_SOURCE) endif @@ -64,10 +64,6 @@ ifneq (,$(ART_MODULE_BUILD_FROM_SOURCE)) else ifneq (,$(findstring .android.art,$(TARGET_BUILD_APPS))) # Build ART modules from source if they are listed in TARGET_BUILD_APPS. ART_MODULE_BUILD_FROM_SOURCE := true -else ifeq (,$(filter-out modules_% mainline_modules_%,$(TARGET_PRODUCT))) - # 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. - ART_MODULE_BUILD_FROM_SOURCE := true else # Do the same as other modules by default. ART_MODULE_BUILD_FROM_SOURCE := $(MODULE_BUILD_FROM_SOURCE) diff --git a/core/product.mk b/core/product.mk index 4ddc4fef4e..1f304cd278 100644 --- a/core/product.mk +++ b/core/product.mk @@ -370,6 +370,10 @@ _product_single_value_vars += PRODUCT_INSTALL_DEBUG_POLICY_TO_SYSTEM_EXT # "/system/framework/foo.jar" will be "system/framework/foo.jar.fsv_meta". _product_single_value_vars += PRODUCT_SYSTEM_FSVERITY_GENERATE_METADATA +# If true, sets the default for MODULE_BUILD_FROM_SOURCE. This overrides +# BRANCH_DEFAULT_MODULE_BUILD_FROM_SOURCE but not an explicitly set value. +_product_single_value_vars += PRODUCT_MODULE_BUILD_FROM_SOURCE + .KATI_READONLY := _product_single_value_vars _product_list_vars _product_var_list :=$= $(_product_single_value_vars) $(_product_list_vars) diff --git a/target/product/module_common.mk b/target/product/module_common.mk index 03340db542..54f3949965 100644 --- a/target/product/module_common.mk +++ b/target/product/module_common.mk @@ -21,3 +21,7 @@ $(call inherit-product, $(SRC_TARGET_DIR)/product/cfi-common.mk) # Enables treble, which enabled certain -D compilation flags. In particular, libhidlbase # uses -DENFORCE_VINTF_MANIFEST. See b/185759877 PRODUCT_SHIPPING_API_LEVEL := 29 + +# Builds using a module product should build modules from source, even if +# BRANCH_DEFAULT_MODULE_BUILD_FROM_SOURCE says otherwise. +PRODUCT_MODULE_BUILD_FROM_SOURCE := true