Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 84c13097 authored by Yifan Hong's avatar Yifan Hong Committed by Gerrit Code Review
Browse files

Merge "Do not check VINTF if no files"

parents 125f7dc8 af9b0701
Loading
Loading
Loading
Loading
+42 −32
Original line number Diff line number Diff line
@@ -3505,34 +3505,59 @@ ifndef TARGET_BUILD_APPS
intermediates := $(call intermediates-dir-for,PACKAGING,check_vintf_all)
check_vintf_all_deps :=

# The build system only writes VINTF metadata to */etc/vintf paths. Legacy paths aren't needed here
# because they are only used for prebuilt images.
check_vintf_common_srcs_patterns := \
  $(TARGET_OUT)/etc/vintf/% \
  $(TARGET_OUT_VENDOR)/etc/vintf/% \
  $(TARGET_OUT_ODM)/etc/vintf/% \
  $(TARGET_OUT_PRODUCT)/etc/vintf/% \
  $(TARGET_OUT_SYSTEM_EXT)/etc/vintf/% \

check_vintf_common_srcs := $(sort $(filter $(check_vintf_common_srcs_patterns), \
  $(INTERNAL_SYSTEMIMAGE_FILES) \
  $(INTERNAL_VENDORIMAGE_FILES) \
  $(INTERNAL_ODMIMAGE_FILES) \
  $(INTERNAL_PRODUCTIMAGE_FILES) \
  $(INTERNAL_SYSTEM_EXTIMAGE_FILES) \
))
check_vintf_common_srcs_patterns :=

check_vintf_has_system :=
check_vintf_has_vendor :=

# -- Check system manifest / matrix including fragments (excluding other framework manifests / matrices, e.g. product);
ifeq ($(BUILDING_SYSTEM_IMAGE),true)
check_vintf_system_deps := $(filter $(TARGET_OUT)/etc/vintf/%, $(check_vintf_common_srcs))
ifneq ($(check_vintf_system_deps),)
check_vintf_has_system := true
check_vintf_system_log := $(intermediates)/check_vintf_system_log
check_vintf_all_deps += $(check_vintf_system_log)
$(check_vintf_system_log): $(HOST_OUT_EXECUTABLES)/checkvintf \
                           $(filter $(TARGET_OUT)/etc/vintf/%, $(INTERNAL_SYSTEMIMAGE_FILES))
$(check_vintf_system_log): $(HOST_OUT_EXECUTABLES)/checkvintf $(check_vintf_system_deps)
	@( $< --check-one --dirmap /system:$(TARGET_OUT) > $@ 2>&1 ) || ( cat $@ && exit 1 )
check_vintf_system_log :=
endif # BUILDING_SYSTEM_IMAGE
endif # check_vintf_system_deps
check_vintf_system_deps :=

# -- Check vendor manifest / matrix including fragments (excluding other device manifests / matrices)
ifeq ($(BUILDING_VENDOR_IMAGE),true)
check_vintf_vendor_deps := $(filter $(TARGET_OUT_VENDOR)/etc/vintf/%, $(check_vintf_common_srcs))
ifneq ($(check_vintf_vendor_deps),)
check_vintf_has_vendor := true
check_vintf_vendor_log := $(intermediates)/check_vintf_vendor_log
check_vintf_all_deps += $(check_vintf_vendor_log)
$(check_vintf_vendor_log): $(HOST_OUT_EXECUTABLES)/checkvintf \
                           $(filter $(TARGET_OUT_VENDOR)/etc/vintf/%, $(INTERNAL_VENDORIMAGE_FILES))
$(check_vintf_vendor_log): $(HOST_OUT_EXECUTABLES)/checkvintf $(check_vintf_vendor_deps)
	@( $< --check-one --dirmap /vendor:$(TARGET_OUT_VENDOR) > $@ 2>&1 ) || ( cat $@ && exit 1 )
check_vintf_vendor_log :=
endif # BUILDING_VENDOR_IMAGE
endif # check_vintf_vendor_deps
check_vintf_vendor_deps :=

# -- Check VINTF compatibility of build.
# Skip partial builds; only check full builds. Only check if:
# - PRODUCT_ENFORCE_VINTF_MANIFEST is true
# - Building system and vendor images
# - system / vendor VINTF metadata exists
# - Building product / system_ext / odm images if board has product / system_ext / odm images
ifeq ($(PRODUCT_ENFORCE_VINTF_MANIFEST),true)
ifeq ($(BUILDING_SYSTEM_IMAGE),true)
ifeq ($(BUILDING_VENDOR_IMAGE),true)
ifeq ($(check_vintf_has_system),true)
ifeq ($(check_vintf_has_vendor),true)
ifeq ($(filter true,$(BUILDING_ODM_IMAGE)),$(filter true,$(BOARD_USES_ODMIMAGE)))
ifeq ($(filter true,$(BUILDING_PRODUCT_IMAGE)),$(filter true,$(BOARD_USES_PRODUCTIMAGE)))
ifeq ($(filter true,$(BUILDING_SYSTEM_EXT_IMAGE)),$(filter true,$(BOARD_USES_SYSTEM_EXTIMAGE)))
@@ -3541,7 +3566,7 @@ check_vintf_compatible_log := $(intermediates)/check_vintf_compatible_log
check_vintf_all_deps += $(check_vintf_compatible_log)

check_vintf_compatible_args :=
check_vintf_compatible_deps :=
check_vintf_compatible_deps := $(check_vintf_common_srcs)

# -- Kernel version and configurations.
ifeq ($(PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS),true)
@@ -3601,24 +3626,6 @@ check_vintf_compatible_deps += $(BUILT_KERNEL_CONFIGS_FILE) $(BUILT_KERNEL_VERSI

endif # PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS

# The build system only writes VINTF metadata to */etc/vintf paths. Legacy paths aren't needed here
# because they are only used for prebuilt images.
check_vintf_compatible_deps_patterns := \
  $(TARGET_OUT)/etc/vintf/% \
  $(TARGET_OUT_VENDOR)/etc/vintf/% \
  $(TARGET_OUT_ODM)/etc/vintf/% \
  $(TARGET_OUT_PRODUCT)/etc/vintf/% \
  $(TARGET_OUT_SYSTEM_EXT)/etc/vintf/% \

check_vintf_compatible_deps += $(sort $(filter $(check_vintf_compatible_deps_patterns), \
  $(INTERNAL_SYSTEMIMAGE_FILES) \
  $(INTERNAL_VENDORIMAGE_FILES) \
  $(INTERNAL_ODMIMAGE_FILES) \
  $(INTERNAL_PRODUCTIMAGE_FILES) \
  $(INTERNAL_SYSTEM_EXTIMAGE_FILES) \
))
check_vintf_compatible_deps_patterns :=

check_vintf_compatible_args += \
  --dirmap /system:$(TARGET_OUT) \
  --dirmap /vendor:$(TARGET_OUT_VENDOR) \
@@ -3651,8 +3658,8 @@ check_vintf_compatible_deps :=
endif # BUILDING_SYSTEM_EXT_IMAGE equals BOARD_USES_SYSTEM_EXTIMAGE
endif # BUILDING_PRODUCT_IMAGE equals BOARD_USES_PRODUCTIMAGE
endif # BUILDING_ODM_IMAGE equals BOARD_USES_ODMIMAGE
endif # BUILDING_VENDOR_IMAGE
endif # BUILDING_SYSTEM_IMAGE
endif # check_vintf_has_vendor
endif # check_vintf_has_system
endif # PRODUCT_ENFORCE_VINTF_MANIFEST

# Add all logs of VINTF checks to dist builds
@@ -3664,6 +3671,9 @@ $(call dist-for-goals, droid_targets, $(check_vintf_all_deps))
check-vintf-all: $(check_vintf_all_deps)
	$(foreach file,$^,echo "$(file)"; cat "$(file)"; echo;)

check_vintf_has_vendor :=
check_vintf_has_system :=
check_vintf_common_srcs :=
check_vintf_all_deps :=
intermediates :=
endif # !TARGET_BUILD_APPS