Merge "compatibility_matrices: add vintf_compatibility_matrix.core_hals." into main

This commit is contained in:
Yifan Hong 2023-07-13 19:29:48 +00:00 committed by Gerrit Code Review
commit 7066d3369a

View file

@ -35,10 +35,10 @@ var (
pctx = android.NewPackageContext("android/vintf")
assembleVintfRule = pctx.AndroidStaticRule("assemble_vintf", blueprint.RuleParams{
Command: `${assembleVintfCmd} -i ${inputs} -o ${out}`,
Command: `${assembleVintfCmd} -i ${inputs} -o ${out} ${extraParams}`,
CommandDeps: []string{"${assembleVintfCmd}"},
Description: "assemble_vintf -i ${inputs}",
}, "inputs")
}, "inputs", "extraParams")
xmllintXsd = pctx.AndroidStaticRule("xmllint-xsd", blueprint.RuleParams{
Command: `$XmlLintCmd --quiet --schema $xsd $in > /dev/null && touch -a $out`,
@ -64,6 +64,13 @@ type vintfCompatibilityMatrixProperties struct {
// list of kernel_config modules to be combined to final output
Kernel_configs []string
// Default is "default" for compatibility matrices on /vendor
// and /odm, and "disallow" for compatibility matrices on /system,
// /product, and /system_ext.
// If value is "only", only android.* HALs are allowed. If value
// is "disallow", none of android.* HALs are allowed.
Core_hals *string
}
type vintfCompatibilityMatrixRule struct {
@ -167,6 +174,7 @@ func (g *vintfCompatibilityMatrixRule) GenerateAndroidBuildActions(ctx android.M
Output: g.genFile,
Args: map[string]string{
"inputs": strings.Join(inputPaths.Strings(), ":"),
"extraParams": strings.Join(g.getExtraParams(), " "),
},
})
g.generateValidateBuildAction(ctx, g.genFile, schema.Path())
@ -191,3 +199,23 @@ func (g *vintfCompatibilityMatrixRule) AndroidMk() android.AndroidMkData {
},
}
}
// Return extra parameters to assemble_vintf.
func (g *vintfCompatibilityMatrixRule) getExtraParams() []string {
var extraParams []string
coreHalsStrategy := proptools.StringDefault(
g.properties.Core_hals,
g.defaultCoreHalsStrategy(),
)
extraParams = append(extraParams, "--core-hals", proptools.ShellEscape(coreHalsStrategy))
return extraParams
}
func (g *vintfCompatibilityMatrixRule) defaultCoreHalsStrategy() string {
// TODO(b/290408770): default to "disallow" for FCMs
// For Device (vendor, odm) compatibility matrix, default is
// to not check anything.
return "default"
}