From d5e069e40516d1cc968001dcd5ff239523c209ae Mon Sep 17 00:00:00 2001 From: Anton Hansson Date: Fri, 25 Jan 2019 12:51:21 +0000 Subject: [PATCH] Auto-include device_manifest.xml when necessary It doesn't make sense to specify a DEVICE_MANIFEST_FILE but the build not including it. The conditional definition of the module makes it problematic to have it listed in the PRODUCT_PACKAGES of a generic mk. Test: build mainline_arm64 + mainline_system_arm64 Change-Id: I40e435ce114263ceabbd373d3d719318c592fc13 --- core/main.mk | 13 ++++++++++++- target/product/base_vendor.mk | 1 - target/product/generic.mk | 5 +---- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/core/main.mk b/core/main.mk index 96b21320f..712b2c574 100644 --- a/core/main.mk +++ b/core/main.mk @@ -1041,6 +1041,14 @@ define resolve-product-relative-paths $(foreach p,$(1),$(call append-path,$(PRODUCT_OUT),$(p)$(2))))))) endef +# Returns modules included automatically as a result of certain BoardConfig +# variables being set. +define auto-included-modules + $(if $(BOARD_VNDK_VERSION),vndk_package) \ + $(if $(DEVICE_MANIFEST_FILE),device_manifest.xml) \ + +endef + # Lists most of the files a particular product installs, including: # - PRODUCT_PACKAGES, and their LOCAL_REQUIRED_MODULES # - PRODUCT_COPY_FILES @@ -1064,7 +1072,7 @@ define product-installed-files $(if $(filter debug,$(tags_to_install)),$(PRODUCTS.$(_mk).PRODUCT_PACKAGES_DEBUG)) \ $(if $(filter tests,$(tags_to_install)),$(PRODUCTS.$(_mk).PRODUCT_PACKAGES_TESTS)) \ $(if $(filter asan,$(tags_to_install)),$(PRODUCTS.$(_mk).PRODUCT_PACKAGES_DEBUG_ASAN)) \ - $(if $(BOARD_VNDK_VERSION),vndk_package) \ + $(call auto-included-modules) \ ) \ $(eval ### Filter out the overridden packages and executables before doing expansion) \ $(eval _pif_overrides := $(call module-overrides,$(_pif_modules))) \ @@ -1123,6 +1131,9 @@ ifdef FULL_BUILD static_whitelist_patterns := $(TARGET_OUT_FAKE)/% $(HOST_OUT)/% $(SOONG_OUT_DIR)/ndk/% # RROs become REQUIRED by the source module, but are always placed on the vendor partition. static_whitelist_patterns += %__auto_generated_rro.apk + # Auto-included targets are not considered + static_whitelist_patterns += $(call module-installed-files,$(call auto-included-modules)) + ifeq (true,$(BOARD_USES_SYSTEM_OTHER_ODEX)) # Allow system_other odex space optimization. static_whitelist_patterns += \ diff --git a/target/product/base_vendor.mk b/target/product/base_vendor.mk index 9bb45d158..269a6af1c 100644 --- a/target/product/base_vendor.mk +++ b/target/product/base_vendor.mk @@ -55,5 +55,4 @@ PRODUCT_PACKAGES += \ # VINTF data for vendor image PRODUCT_PACKAGES += \ - device_manifest.xml \ device_compatibility_matrix.xml \ diff --git a/target/product/generic.mk b/target/product/generic.mk index cc856f4f7..6fe481876 100644 --- a/target/product/generic.mk +++ b/target/product/generic.mk @@ -25,7 +25,4 @@ PRODUCT_BRAND := generic PRODUCT_DEVICE := generic PRODUCT_NAME := generic -_whitelist := \ - device_manifest.xml \ - -$(call enforce-product-packages-exist,$(_whitelist)) +$(call enforce-product-packages-exist,)