Support adding extra lint checks

Add a lint.extra_check_modules property to list modules to use as
plugins to Lint.

Bug: 153485543
Test: m checkbuild
Change-Id: I25c7799438cfec43163e757637c65b8657488d36
Merged-In: I25c7799438cfec43163e757637c65b8657488d36
(cherry picked from commit 92e4b46af5)
This commit is contained in:
Colin Cross
2020-06-18 15:56:48 -07:00
parent aaf58061a0
commit 205a504053
2 changed files with 24 additions and 0 deletions

View File

@@ -42,6 +42,9 @@ type LintProperties struct {
// Checks that should be skipped.
Disabled_checks []string
// Modules that provide extra lint checks
Extra_check_modules []string
}
}
@@ -76,6 +79,14 @@ func (l *linter) enabled() bool {
return BoolDefault(l.properties.Lint.Enabled, true)
}
func (l *linter) deps(ctx android.BottomUpMutatorContext) {
if !l.enabled() {
return
}
ctx.AddFarVariationDependencies(ctx.Config().BuildOSCommonTarget.Variations(), extraLintCheckTag, l.properties.Lint.Extra_check_modules...)
}
func (l *linter) writeLintProjectXML(ctx android.ModuleContext,
rule *android.RuleBuilder) (projectXMLPath, configXMLPath, cacheDir android.WritablePath, deps android.Paths) {
@@ -179,6 +190,16 @@ func (l *linter) lint(ctx android.ModuleContext) {
return
}
extraLintCheckModules := ctx.GetDirectDepsWithTag(extraLintCheckTag)
for _, extraLintCheckModule := range extraLintCheckModules {
if dep, ok := extraLintCheckModule.(Dependency); ok {
l.extraLintCheckJars = append(l.extraLintCheckJars, dep.ImplementationAndResourcesJars()...)
} else {
ctx.PropertyErrorf("lint.extra_check_modules",
"%s is not a java module", ctx.OtherModuleName(extraLintCheckModule))
}
}
rule := android.NewRuleBuilder()
if l.manifest == nil {