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

Commit b8fef652 authored by Jooyung Han's avatar Jooyung Han Committed by Gerrit Code Review
Browse files

Merge "checkvintf with all apexes" into main

parents 5f1a854b 9738259f
Loading
Loading
Loading
Loading
+17 −8
Original line number Diff line number Diff line
@@ -5061,9 +5061,12 @@ intermediates := $(call intermediates-dir-for,PACKAGING,check_vintf_all)
check_vintf_all_deps :=

# -----------------------------------------------------------------
# Activate vendor APEXes for checkvintf
# Activate APEXes for checkvintf

apex_dirs := \
  $(TARGET_OUT)/apex/% \
  $(TARGET_OUT_PRODUCT)/apex/% \
  $(TARGET_OUT_SYSTEM_EXT)/apex/% \
  $(TARGET_OUT_VENDOR)/apex/% \

apex_files := $(sort $(filter $(apex_dirs), $(INTERNAL_ALLIMAGES_FILES)))
@@ -5079,7 +5082,10 @@ $(APEX_INFO_FILE): $(HOST_OUT_EXECUTABLES)/apexd_host $(apex_files)
	@echo $(PRIVATE_APEX_FILES) > /dev/null
	@rm -rf $(APEX_OUT)
	@mkdir -p $(APEX_OUT)
	$< --vendor_path $(TARGET_OUT_VENDOR) \
	$< --system_path $(TARGET_OUT) \
	   --system_ext_path $(TARGET_OUT_SYSTEM_EXT) \
	   --product_path $(TARGET_OUT_PRODUCT) \
	   --vendor_path $(TARGET_OUT_VENDOR) \
	   --apex_path $(APEX_OUT)

apex_files :=
@@ -5087,14 +5093,14 @@ apex_dirs :=

# 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.
# APEX files in /vendor/apex can have VINTF fragments as well.
# APEX files in /$partition/apex can have VINTF fragments as well.
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/% \
  $(TARGET_OUT_VENDOR)/apex/% \
  $(apex_dirs)

check_vintf_common_srcs := $(sort $(filter $(check_vintf_common_srcs_patterns),$(INTERNAL_ALLIMAGES_FILES)))
check_vintf_common_srcs_patterns :=
@@ -5112,15 +5118,17 @@ endif
# -- Check system and system_ext manifests / matrices including fragments (excluding other framework manifests / matrices, e.g. product);
ifdef BUILDING_SYSTEM_IMAGE
check_vintf_system_deps := $(filter $(TARGET_OUT)/etc/vintf/% \
                                    $(TARGET_OUT_SYSTEM_EXT)/etc/vintf/%, \
                                    $(TARGET_OUT_SYSTEM_EXT)/etc/vintf/% \
                                    $(TARGET_OUT)/apex/% \
                                    $(TARGET_OUT_SYSTEM_EXT)/apex/%, \
                                    $(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 $(check_vintf_system_deps)
	@( $< --check-one --dirmap /system:$(TARGET_OUT) > $@ 2>&1 ) || ( cat $@ && exit 1 )
$(check_vintf_system_log): $(HOST_OUT_EXECUTABLES)/checkvintf $(check_vintf_system_deps) $(APEX_INFO_FILE)
	@( $< --check-one --dirmap /system:$(TARGET_OUT) --dirmap /apex:$(APEX_OUT) > $@ 2>&1 ) || ( cat $@ && exit 1 )
$(call declare-1p-target,$(check_vintf_system_log))
check_vintf_system_log :=

@@ -5129,10 +5137,11 @@ ifneq (true, $(BUILDING_VENDOR_IMAGE))
    vintffm_log := $(intermediates)/vintffm.log
endif
check_vintf_all_deps += $(vintffm_log)
$(vintffm_log): $(HOST_OUT_EXECUTABLES)/vintffm $(check_vintf_system_deps)
$(vintffm_log): $(HOST_OUT_EXECUTABLES)/vintffm $(check_vintf_system_deps) $(APEX_INFO_FILE)
	@( $< --check --dirmap /system:$(TARGET_OUT) \
	  --dirmap /system_ext:$(TARGET_OUT_SYSTEM_EXT) \
	  --dirmap /product:$(TARGET_OUT_PRODUCT) \
	  --dirmap /apex:$(APEX_OUT) \
	  $(VINTF_FRAMEWORK_MANIFEST_FROZEN_DIR) > $@ 2>&1 ) || ( cat $@ && exit 1 )

$(call declare-1p-target,$(vintffm_log))
+5 −4
Original line number Diff line number Diff line
@@ -215,7 +215,7 @@ def PrepareApexDirectory(inp, dirmap):

  This simulates how apexd activates APEXes.
  1. create {inp}/APEX which is treated as a "/apex" on device.
  2. invoke apexd_host with vendor APEXes.
  2. invoke apexd_host with APEXes.
  """

  apex_dir = common.MakeTempDir('APEX')
@@ -225,12 +225,13 @@ def PrepareApexDirectory(inp, dirmap):
  # Always create /apex directory for dirmap
  os.makedirs(apex_dir, exist_ok=True)

  # Invoke apexd_host to activate vendor APEXes for checkvintf
  # Invoke apexd_host to activate APEXes for checkvintf
  apex_host = os.path.join(OPTIONS.search_path, 'bin', 'apexd_host')
  cmd = [apex_host, '--tool_path', OPTIONS.search_path]
  cmd += ['--apex_path', dirmap['/apex']]
  if '/vendor' in dirmap:
      cmd += ['--vendor_path', dirmap['/vendor']]
  for p in ['system', 'system_ext', 'product', 'vendor']:
    if '/' + p in dirmap:
      cmd += ['--' + p + '_path', dirmap['/' + p]]
  common.RunAndCheckOutput(cmd)