From 3693fe4ab595d8059d5135f2dfbed04d53f22861 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Thu, 29 Mar 2018 10:06:10 -0700 Subject: [PATCH] matrix: generalize case for LOCAL_WARN_REQUIRED_HALS Add LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE and LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE for a more generic case. Test: m framework_compatibility_matrix.xml -j Bug: 65028233 Change-Id: Iec142d161daa18122e7a6daebb82c7230cb98ba6 --- compatibility_matrices/Android.mk | 6 ++-- .../compatibility_matrix.mk | 34 ++++++++++++++++--- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk index d24d8e9ff8..dd7165d55f 100644 --- a/compatibility_matrices/Android.mk +++ b/compatibility_matrices/Android.mk @@ -21,8 +21,9 @@ BUILD_FRAMEWORK_COMPATIBILITY_MATRIX := $(LOCAL_PATH)/compatibility_matrix.mk # Clear potential input variables to BUILD_FRAMEWORK_COMPATIBILITY_MATRIX LOCAL_ADD_VBMETA_VERSION := LOCAL_ASSEMBLE_VINTF_ENV_VARS := +LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE := +LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE := LOCAL_ASSEMBLE_VINTF_FLAGS := -LOCAL_WARN_REQUIRED_HALS := LOCAL_KERNEL_VERSIONS := LOCAL_GEN_FILE_DEPENDENCIES := @@ -99,7 +100,8 @@ LOCAL_ASSEMBLE_VINTF_ENV_VARS := \ PLATFORM_SEPOLICY_VERSION \ PLATFORM_SEPOLICY_COMPAT_VERSIONS -LOCAL_WARN_REQUIRED_HALS := \ +LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE := PRODUCT_ENFORCE_VINTF_MANIFEST=true +LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE := \ "Error: DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX cannot contain required HALs." include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) diff --git a/compatibility_matrices/compatibility_matrix.mk b/compatibility_matrices/compatibility_matrix.mk index 2d6c5d0057..6dc2b4fb69 100644 --- a/compatibility_matrices/compatibility_matrix.mk +++ b/compatibility_matrices/compatibility_matrix.mk @@ -25,6 +25,27 @@ endef # $(warning $(call remove-minor-revision,3.18.0)) +##### Input Variables: +# LOCAL_MODULE: required. Module name for the build system. +# LOCAL_MODULE_CLASS: optional. Default is ETC. +# LOCAL_MODULE_PATH: optional. Path of output file. Default is $(TARGET_OUT)/etc/vintf. +# LOCAL_MODULE_STEM: optional. Name of output file. Default is $(LOCAL_MODULE). +# LOCAL_SRC_FILES: required. Local source files provided to assemble_vintf +# (command line argument -i). +# LOCAL_GENERATED_SOURCES: optional. Global source files provided to assemble_vintf +# (command line argument -i). +# +# LOCAL_ADD_VBMETA_VERSION: Use AVBTOOL to add avb version to the output matrix +# (corresponds to tag) +# LOCAL_ASSEMBLE_VINTF_ENV_VARS: Add a list of environment variable names from global variables in +# the build system that is lazily evaluated (e.g. PRODUCT_ENFORCE_VINTF_MANIFEST). +# LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE: Add a list of environment variables that is local to +# assemble_vintf invocation. Format is "VINTF_ENFORCE_NO_UNUSED_HALS=true". +# LOCAL_ASSEMBLE_VINTF_FLAGS: Add additional command line arguments to assemble_vintf invocation. +# LOCAL_KERNEL_VERSIONS: Parse kernel configurations and add to the output matrix +# (corresponds to tags.) +# LOCAL_GEN_FILE_DEPENDENCIES: A list of additional dependencies for the generated file. + ifndef LOCAL_MODULE $(error LOCAL_MODULE must be defined.) endif @@ -81,13 +102,17 @@ my_matrix_src_files := \ $(addprefix $(LOCAL_PATH)/,$(LOCAL_SRC_FILES)) \ $(LOCAL_GENERATED_SOURCES) -ifneq (,$(strip $(LOCAL_WARN_REQUIRED_HALS))) -$(GEN): PRIVATE_ADDITIONAL_ENV_VARS += PRODUCT_ENFORCE_VINTF_MANIFEST=true -$(GEN): PRIVATE_COMMAND_TAIL := || (echo $(strip $(LOCAL_WARN_REQUIRED_HALS)) && false) +$(GEN): PRIVATE_ADDITIONAL_ENV_VARS := $(LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE) + +ifneq (,$(strip $(LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE))) +$(GEN): PRIVATE_COMMAND_TAIL := || (echo $(strip $(LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE)) && false) endif $(GEN): PRIVATE_SRC_FILES := $(my_matrix_src_files) $(GEN): $(my_matrix_src_files) $(HOST_OUT_EXECUTABLES)/assemble_vintf + $(foreach varname,$(PRIVATE_ENV_VARS),\ + $(if $(findstring $(varname),$(PRIVATE_ADDITIONAL_ENV_VARS)),\ + $(error $(varname) should not be overridden by LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE.))) $(foreach varname,$(PRIVATE_ENV_VARS),$(varname)="$($(varname))") \ $(PRIVATE_ADDITIONAL_ENV_VARS) \ $(HOST_OUT_EXECUTABLES)/assemble_vintf \ @@ -101,8 +126,9 @@ LOCAL_GENERATED_SOURCES := LOCAL_ADD_VBMETA_VERSION := LOCAL_ASSEMBLE_VINTF_ENV_VARS := +LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE := +LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE := LOCAL_ASSEMBLE_VINTF_FLAGS := -LOCAL_WARN_REQUIRED_HALS := LOCAL_KERNEL_VERSIONS := LOCAL_GEN_FILE_DEPENDENCIES := my_matrix_src_files :=