From bb688a9fa9f8542dd0868a706eae987ec0e686e0 Mon Sep 17 00:00:00 2001 From: Jeongik Cha Date: Fri, 12 Jul 2019 12:51:37 +0900 Subject: [PATCH] Raise an error when partition setting is wrong When setting target out path at root(/product, /system_ext), either file system type or prebuilt image must be set. If not, we'd rather raise an error. Without raising an error, the artifacts in these directory are not included in any image. And also, extract these logics into function, and check product, odm, system_ext For now, exempt vendor image because of some targets with prebuilt vendor image. Bug: 137169253 Test: set TARGET_COPY_OUT_PRODUCT := product BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := BOARD_PREBUILT_PRODUCTIMAGE := and then check if it causes an error. Test: set TARGET_COPY_OUT_PRODUCT := system/product BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE := ext4 or BOARD_PREBUILT_PRODUCTIMAGE := someimage.img and then check if it causes an error. Change-Id: Ibf0f7838111075ba3649e198e5649aa7e8e29d7c --- core/board_config.mk | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/core/board_config.mk b/core/board_config.mk index 0e3c52f0e..00ac0bed0 100644 --- a/core/board_config.mk +++ b/core/board_config.mk @@ -255,6 +255,19 @@ TARGET_CPU_ABI_LIST := $(subst $(space),$(comma),$(strip $(TARGET_CPU_ABI_LIST)) TARGET_CPU_ABI_LIST_32_BIT := $(subst $(space),$(comma),$(strip $(TARGET_CPU_ABI_LIST_32_BIT))) TARGET_CPU_ABI_LIST_64_BIT := $(subst $(space),$(comma),$(strip $(TARGET_CPU_ABI_LIST_64_BIT))) +# Check if config about image building is valid or not. +define check_image_config + $(eval _uc_name := $(call to-upper,$(1))) \ + $(eval _lc_name := $(call to-lower,$(1))) \ + $(if $(filter $(_lc_name),$(TARGET_COPY_OUT_$(_uc_name))), \ + $(if $(BOARD_USES_$(_uc_name)IMAGE),, \ + $(error If TARGET_COPY_OUT_$(_uc_name) is '$(_lc_name)', either BOARD_PREBUILT_$(_uc_name)IMAGE or BOARD_$(_uc_name)IMAGE_FILE_SYSTEM_TYPE must be set)), \ + $(if $(BOARD_USES_$(_uc_name)IMAGE), \ + $(error TARGET_COPY_OUT_$(_uc_name) must be set to '$(_lc_name)' to use a $(_lc_name) image))) \ + $(eval _uc_name :=) \ + $(eval _lc_name :=) +endef + ########################################### # Now we can substitute with the real value of TARGET_COPY_OUT_RAMDISK ifeq ($(BOARD_BUILD_SYSTEM_ROOT_IMAGE),true) @@ -399,6 +412,8 @@ endif ifdef BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE BOARD_USES_VENDORIMAGE := true endif +# TODO(b/137169253): For now, some AOSP targets build with prebuilt vendor image. +# But target's BOARD_PREBUILT_VENDORIMAGE is not filled. ifeq ($(TARGET_COPY_OUT_VENDOR),vendor) BOARD_USES_VENDORIMAGE := true else ifdef BOARD_USES_VENDORIMAGE @@ -438,11 +453,7 @@ endif ifdef BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE BOARD_USES_PRODUCTIMAGE := true endif -ifeq ($(TARGET_COPY_OUT_PRODUCT),product) - BOARD_USES_PRODUCTIMAGE := true -else ifdef BOARD_USES_PRODUCTIMAGE - $(error TARGET_COPY_OUT_PRODUCT must be set to 'product' to use a product image) -endif +$(call check_image_config,product) .KATI_READONLY := BOARD_USES_PRODUCTIMAGE BUILDING_PRODUCT_IMAGE := @@ -482,11 +493,7 @@ endif ifdef BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE BOARD_USES_SYSTEM_EXTIMAGE := true endif -ifeq ($(TARGET_COPY_OUT_SYSTEM_EXT),system_ext) - BOARD_USES_SYSTEM_EXTIMAGE := true -else ifdef BOARD_USES_SYSTEM_EXTIMAGE - $(error TARGET_COPY_OUT_SYSTEM_EXT must be set to 'system_ext' to use a system_ext image) -endif +$(call check_image_config,system_ext) .KATI_READONLY := BOARD_USES_SYSTEM_EXTIMAGE BUILDING_SYSTEM_EXT_IMAGE := @@ -521,11 +528,7 @@ endif ifdef BOARD_ODMIMAGE_FILE_SYSTEM_TYPE BOARD_USES_ODMIMAGE := true endif -ifeq ($(TARGET_COPY_OUT_ODM),odm) - BOARD_USES_ODMIMAGE := true -else ifdef BOARD_USES_ODMIMAGE - $(error TARGET_COPY_OUT_ODM must be set to 'odm' to use an odm image) -endif +$(call check_image_config,odm) BUILDING_ODM_IMAGE := ifeq ($(PRODUCT_BUILD_ODM_IMAGE),)