summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYifan Hong2018-03-30 12:26:14 -0500
committerGerrit Code Review2018-03-30 12:26:14 -0500
commit61cbaa8dd70658e82afa2402d9e2e8b015c27ef6 (patch)
tree6d01ef03234d96704a53ea7bdb7980ae42c660a5
parent1965ea92826ca6e0adba6a26db0683e4515501fc (diff)
parent7d61a8d47b100e6c16deb2b910f4014d7d9b6f28 (diff)
downloadplatform-hardware-interfaces-61cbaa8dd70658e82afa2402d9e2e8b015c27ef6.tar.gz
platform-hardware-interfaces-61cbaa8dd70658e82afa2402d9e2e8b015c27ef6.tar.xz
platform-hardware-interfaces-61cbaa8dd70658e82afa2402d9e2e8b015c27ef6.zip
Merge changes from topic "check_unused_hals"
* changes: matrix: ENFORCE_NO_UNUSED_HALS matrix: generalize case for LOCAL_WARN_REQUIRED_HALS matrix: IGNORE_TARGET_FCM_VERSION -> VINTF_* matrix: define LOCAL_MODULE for all modules.
-rw-r--r--compatibility_matrices/Android.mk24
-rw-r--r--compatibility_matrices/compatibility_matrix.mk42
2 files changed, 53 insertions, 13 deletions
diff --git a/compatibility_matrices/Android.mk b/compatibility_matrices/Android.mk
index a10d808d..23be7de2 100644
--- a/compatibility_matrices/Android.mk
+++ b/compatibility_matrices/Android.mk
@@ -21,8 +21,9 @@ BUILD_FRAMEWORK_COMPATIBILITY_MATRIX := $(LOCAL_PATH)/compatibility_matrix.mk
21# Clear potential input variables to BUILD_FRAMEWORK_COMPATIBILITY_MATRIX 21# Clear potential input variables to BUILD_FRAMEWORK_COMPATIBILITY_MATRIX
22LOCAL_ADD_VBMETA_VERSION := 22LOCAL_ADD_VBMETA_VERSION :=
23LOCAL_ASSEMBLE_VINTF_ENV_VARS := 23LOCAL_ASSEMBLE_VINTF_ENV_VARS :=
24LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE :=
25LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE :=
24LOCAL_ASSEMBLE_VINTF_FLAGS := 26LOCAL_ASSEMBLE_VINTF_FLAGS :=
25LOCAL_WARN_REQUIRED_HALS :=
26LOCAL_KERNEL_VERSIONS := 27LOCAL_KERNEL_VERSIONS :=
27LOCAL_GEN_FILE_DEPENDENCIES := 28LOCAL_GEN_FILE_DEPENDENCIES :=
28 29
@@ -30,18 +31,21 @@ LOCAL_GEN_FILE_DEPENDENCIES :=
30 31
31 32
32include $(CLEAR_VARS) 33include $(CLEAR_VARS)
34LOCAL_MODULE := framework_compatibility_matrix.legacy.xml
33LOCAL_MODULE_STEM := compatibility_matrix.legacy.xml 35LOCAL_MODULE_STEM := compatibility_matrix.legacy.xml
34LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM) 36LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM)
35LOCAL_KERNEL_VERSIONS := 3.18.0 4.4.0 4.9.0 37LOCAL_KERNEL_VERSIONS := 3.18.0 4.4.0 4.9.0
36include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) 38include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX)
37 39
38include $(CLEAR_VARS) 40include $(CLEAR_VARS)
41LOCAL_MODULE := framework_compatibility_matrix.1.xml
39LOCAL_MODULE_STEM := compatibility_matrix.1.xml 42LOCAL_MODULE_STEM := compatibility_matrix.1.xml
40LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM) 43LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM)
41LOCAL_KERNEL_VERSIONS := 3.18.0 4.4.0 4.9.0 44LOCAL_KERNEL_VERSIONS := 3.18.0 4.4.0 4.9.0
42include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) 45include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX)
43 46
44include $(CLEAR_VARS) 47include $(CLEAR_VARS)
48LOCAL_MODULE := framework_compatibility_matrix.2.xml
45LOCAL_MODULE_STEM := compatibility_matrix.2.xml 49LOCAL_MODULE_STEM := compatibility_matrix.2.xml
46LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM) 50LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM)
47LOCAL_KERNEL_VERSIONS := 3.18.0 4.4.0 4.9.0 51LOCAL_KERNEL_VERSIONS := 3.18.0 4.4.0 4.9.0
@@ -50,6 +54,7 @@ include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX)
50# TODO(b/72409164): STOPSHIP: update kernel version requirements 54# TODO(b/72409164): STOPSHIP: update kernel version requirements
51 55
52include $(CLEAR_VARS) 56include $(CLEAR_VARS)
57LOCAL_MODULE := framework_compatibility_matrix.current.xml
53LOCAL_MODULE_STEM := compatibility_matrix.current.xml 58LOCAL_MODULE_STEM := compatibility_matrix.current.xml
54LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM) 59LOCAL_SRC_FILES := $(LOCAL_MODULE_STEM)
55LOCAL_KERNEL_VERSIONS := 4.4.0 4.9.0 60LOCAL_KERNEL_VERSIONS := 4.4.0 4.9.0
@@ -58,9 +63,9 @@ include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX)
58# Framework Compatibility Matrix (common to all FCM versions) 63# Framework Compatibility Matrix (common to all FCM versions)
59 64
60include $(CLEAR_VARS) 65include $(CLEAR_VARS)
61LOCAL_MODULE_STEM := compatibility_matrix.device.xml
62# define LOCAL_MODULE and LOCAL_MODULE_CLASS for local-generated-sources-dir.
63LOCAL_MODULE := framework_compatibility_matrix.device.xml 66LOCAL_MODULE := framework_compatibility_matrix.device.xml
67LOCAL_MODULE_STEM := compatibility_matrix.device.xml
68# define LOCAL_MODULE_CLASS for local-generated-sources-dir.
64LOCAL_MODULE_CLASS := ETC 69LOCAL_MODULE_CLASS := ETC
65 70
66ifndef DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE 71ifndef DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE
@@ -78,7 +83,7 @@ my_gen_check_manifest := $(local-generated-sources-dir)/manifest.check.xml
78$(my_gen_check_manifest): PRIVATE_SRC_FILE := $(my_manifest_src_file) 83$(my_gen_check_manifest): PRIVATE_SRC_FILE := $(my_manifest_src_file)
79$(my_gen_check_manifest): $(my_manifest_src_file) $(HOST_OUT_EXECUTABLES)/assemble_vintf 84$(my_gen_check_manifest): $(my_manifest_src_file) $(HOST_OUT_EXECUTABLES)/assemble_vintf
80 BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) \ 85 BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) \
81 IGNORE_TARGET_FCM_VERSION=true \ 86 VINTF_IGNORE_TARGET_FCM_VERSION=true \
82 $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $(PRIVATE_SRC_FILE) -o $@ 87 $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $(PRIVATE_SRC_FILE) -o $@
83 88
84LOCAL_GEN_FILE_DEPENDENCIES += $(my_gen_check_manifest) 89LOCAL_GEN_FILE_DEPENDENCIES += $(my_gen_check_manifest)
@@ -95,7 +100,8 @@ LOCAL_ASSEMBLE_VINTF_ENV_VARS := \
95 PLATFORM_SEPOLICY_VERSION \ 100 PLATFORM_SEPOLICY_VERSION \
96 PLATFORM_SEPOLICY_COMPAT_VERSIONS 101 PLATFORM_SEPOLICY_COMPAT_VERSIONS
97 102
98LOCAL_WARN_REQUIRED_HALS := \ 103LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE := PRODUCT_ENFORCE_VINTF_MANIFEST=true
104LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE := \
99 "Error: DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX cannot contain required HALs." 105 "Error: DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX cannot contain required HALs."
100 106
101include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) 107include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX)
@@ -121,6 +127,14 @@ endif
121 127
122LOCAL_ASSEMBLE_VINTF_ENV_VARS := PRODUCT_ENFORCE_VINTF_MANIFEST 128LOCAL_ASSEMBLE_VINTF_ENV_VARS := PRODUCT_ENFORCE_VINTF_MANIFEST
123 129
130# TODO(b/65028233): Enforce no "unused HALs" for devices that does not define
131# DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE as well
132ifeq (true,$(strip $(PRODUCT_ENFORCE_VINTF_MANIFEST)))
133ifdef DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE
134LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE := VINTF_ENFORCE_NO_UNUSED_HALS=true
135endif
136endif
137
124include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX) 138include $(BUILD_FRAMEWORK_COMPATIBILITY_MATRIX)
125BUILT_SYSTEM_COMPATIBILITY_MATRIX := $(LOCAL_BUILT_MODULE) 139BUILT_SYSTEM_COMPATIBILITY_MATRIX := $(LOCAL_BUILT_MODULE)
126 140
diff --git a/compatibility_matrices/compatibility_matrix.mk b/compatibility_matrices/compatibility_matrix.mk
index abc67965..6dc2b4fb 100644
--- a/compatibility_matrices/compatibility_matrix.mk
+++ b/compatibility_matrices/compatibility_matrix.mk
@@ -25,12 +25,33 @@ endef
25 25
26# $(warning $(call remove-minor-revision,3.18.0)) 26# $(warning $(call remove-minor-revision,3.18.0))
27 27
28ifndef LOCAL_MODULE_STEM 28##### Input Variables:
29$(error LOCAL_MODULE_STEM must be defined.) 29# LOCAL_MODULE: required. Module name for the build system.
30endif 30# LOCAL_MODULE_CLASS: optional. Default is ETC.
31# LOCAL_MODULE_PATH: optional. Path of output file. Default is $(TARGET_OUT)/etc/vintf.
32# LOCAL_MODULE_STEM: optional. Name of output file. Default is $(LOCAL_MODULE).
33# LOCAL_SRC_FILES: required. Local source files provided to assemble_vintf
34# (command line argument -i).
35# LOCAL_GENERATED_SOURCES: optional. Global source files provided to assemble_vintf
36# (command line argument -i).
37#
38# LOCAL_ADD_VBMETA_VERSION: Use AVBTOOL to add avb version to the output matrix
39# (corresponds to <avb><vbmeta-version> tag)
40# LOCAL_ASSEMBLE_VINTF_ENV_VARS: Add a list of environment variable names from global variables in
41# the build system that is lazily evaluated (e.g. PRODUCT_ENFORCE_VINTF_MANIFEST).
42# LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE: Add a list of environment variables that is local to
43# assemble_vintf invocation. Format is "VINTF_ENFORCE_NO_UNUSED_HALS=true".
44# LOCAL_ASSEMBLE_VINTF_FLAGS: Add additional command line arguments to assemble_vintf invocation.
45# LOCAL_KERNEL_VERSIONS: Parse kernel configurations and add to the output matrix
46# (corresponds to <kernel> tags.)
47# LOCAL_GEN_FILE_DEPENDENCIES: A list of additional dependencies for the generated file.
31 48
32ifndef LOCAL_MODULE 49ifndef LOCAL_MODULE
33LOCAL_MODULE := framework_$(LOCAL_MODULE_STEM) 50$(error LOCAL_MODULE must be defined.)
51endif
52
53ifndef LOCAL_MODULE_STEM
54LOCAL_MODULE_STEM := $(LOCAL_MODULE)
34endif 55endif
35 56
36ifndef LOCAL_MODULE_CLASS 57ifndef LOCAL_MODULE_CLASS
@@ -81,13 +102,17 @@ my_matrix_src_files := \
81 $(addprefix $(LOCAL_PATH)/,$(LOCAL_SRC_FILES)) \ 102 $(addprefix $(LOCAL_PATH)/,$(LOCAL_SRC_FILES)) \
82 $(LOCAL_GENERATED_SOURCES) 103 $(LOCAL_GENERATED_SOURCES)
83 104
84ifneq (,$(strip $(LOCAL_WARN_REQUIRED_HALS))) 105$(GEN): PRIVATE_ADDITIONAL_ENV_VARS := $(LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE)
85$(GEN): PRIVATE_ADDITIONAL_ENV_VARS += PRODUCT_ENFORCE_VINTF_MANIFEST=true 106
86$(GEN): PRIVATE_COMMAND_TAIL := || (echo $(strip $(LOCAL_WARN_REQUIRED_HALS)) && false) 107ifneq (,$(strip $(LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE)))
108$(GEN): PRIVATE_COMMAND_TAIL := || (echo $(strip $(LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE)) && false)
87endif 109endif
88 110
89$(GEN): PRIVATE_SRC_FILES := $(my_matrix_src_files) 111$(GEN): PRIVATE_SRC_FILES := $(my_matrix_src_files)
90$(GEN): $(my_matrix_src_files) $(HOST_OUT_EXECUTABLES)/assemble_vintf 112$(GEN): $(my_matrix_src_files) $(HOST_OUT_EXECUTABLES)/assemble_vintf
113 $(foreach varname,$(PRIVATE_ENV_VARS),\
114 $(if $(findstring $(varname),$(PRIVATE_ADDITIONAL_ENV_VARS)),\
115 $(error $(varname) should not be overridden by LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE.)))
91 $(foreach varname,$(PRIVATE_ENV_VARS),$(varname)="$($(varname))") \ 116 $(foreach varname,$(PRIVATE_ENV_VARS),$(varname)="$($(varname))") \
92 $(PRIVATE_ADDITIONAL_ENV_VARS) \ 117 $(PRIVATE_ADDITIONAL_ENV_VARS) \
93 $(HOST_OUT_EXECUTABLES)/assemble_vintf \ 118 $(HOST_OUT_EXECUTABLES)/assemble_vintf \
@@ -101,8 +126,9 @@ LOCAL_GENERATED_SOURCES :=
101 126
102LOCAL_ADD_VBMETA_VERSION := 127LOCAL_ADD_VBMETA_VERSION :=
103LOCAL_ASSEMBLE_VINTF_ENV_VARS := 128LOCAL_ASSEMBLE_VINTF_ENV_VARS :=
129LOCAL_ASSEMBLE_VINTF_ENV_VARS_OVERRIDE :=
130LOCAL_ASSEMBLE_VINTF_ERROR_MESSAGE :=
104LOCAL_ASSEMBLE_VINTF_FLAGS := 131LOCAL_ASSEMBLE_VINTF_FLAGS :=
105LOCAL_WARN_REQUIRED_HALS :=
106LOCAL_KERNEL_VERSIONS := 132LOCAL_KERNEL_VERSIONS :=
107LOCAL_GEN_FILE_DEPENDENCIES := 133LOCAL_GEN_FILE_DEPENDENCIES :=
108my_matrix_src_files := 134my_matrix_src_files :=