diff options
Diffstat (limited to 'java/lint.go')
-rw-r--r-- | java/lint.go | 30 |
1 files changed, 9 insertions, 21 deletions
diff --git a/java/lint.go b/java/lint.go index e831faf9d..e740c3aaf 100644 --- a/java/lint.go +++ b/java/lint.go @@ -55,7 +55,8 @@ type LintProperties struct { // Modules that provide extra lint checks Extra_check_modules []string - // Name of the file that lint uses as the baseline. Defaults to "lint-baseline.xml". + // The lint baseline file to use. If specified, lint warnings listed in this file will be + // suppressed during lint checks. Baseline_filename *string // If true, baselining updatability lint checks (e.g. NewApi) is prohibited. Defaults to false. @@ -92,6 +93,7 @@ type linter struct { outputs lintOutputs properties LintProperties extraMainlineLintErrors []string + compile_data android.Paths reports android.Paths @@ -363,19 +365,6 @@ func (l *linter) generateManifest(ctx android.ModuleContext, rule *android.RuleB return manifestPath } -func (l *linter) getBaselineFilepath(ctx android.ModuleContext) android.OptionalPath { - var lintBaseline android.OptionalPath - if lintFilename := proptools.StringDefault(l.properties.Lint.Baseline_filename, "lint-baseline.xml"); lintFilename != "" { - if String(l.properties.Lint.Baseline_filename) != "" { - // if manually specified, we require the file to exist - lintBaseline = android.OptionalPathForPath(android.PathForModuleSrc(ctx, lintFilename)) - } else { - lintBaseline = android.ExistentPathForSource(ctx, ctx.ModuleDir(), lintFilename) - } - } - return lintBaseline -} - func (l *linter) lint(ctx android.ModuleContext) { if !l.enabled() { return @@ -411,8 +400,7 @@ func (l *linter) lint(ctx android.ModuleContext) { extraLintCheckModules := ctx.GetDirectDepsWithTag(extraLintCheckTag) for _, extraLintCheckModule := range extraLintCheckModules { - if ctx.OtherModuleHasProvider(extraLintCheckModule, JavaInfoProvider) { - dep := ctx.OtherModuleProvider(extraLintCheckModule, JavaInfoProvider).(JavaInfo) + if dep, ok := android.OtherModuleProvider(ctx, extraLintCheckModule, JavaInfoProvider); ok { l.extraLintCheckJars = append(l.extraLintCheckJars, dep.ImplementationAndResourcesJars...) } else { ctx.PropertyErrorf("lint.extra_check_modules", @@ -447,7 +435,7 @@ func (l *linter) lint(ctx android.ModuleContext) { srcsList := android.PathForModuleOut(ctx, "lint", "lint-srcs.list") srcsListRsp := android.PathForModuleOut(ctx, "lint-srcs.list.rsp") - rule.Command().Text("cp").FlagWithRspFileInputList("", srcsListRsp, l.srcs).Output(srcsList) + rule.Command().Text("cp").FlagWithRspFileInputList("", srcsListRsp, l.srcs).Output(srcsList).Implicits(l.compile_data) lintPaths := l.writeLintProjectXML(ctx, rule, srcsList) @@ -490,6 +478,7 @@ func (l *linter) lint(ctx android.ModuleContext) { cmd.BuiltTool("lint").ImplicitTool(ctx.Config().HostJavaToolPath(ctx, "lint.jar")). Flag("--quiet"). + Flag("--include-aosp-issues"). FlagWithInput("--project ", lintPaths.projectXML). FlagWithInput("--config ", lintPaths.configXML). FlagWithOutput("--html ", html). @@ -516,9 +505,8 @@ func (l *linter) lint(ctx android.ModuleContext) { cmd.FlagWithArg("--check ", checkOnly) } - lintBaseline := l.getBaselineFilepath(ctx) - if lintBaseline.Valid() { - cmd.FlagWithInput("--baseline ", lintBaseline.Path()) + if l.properties.Lint.Baseline_filename != nil { + cmd.FlagWithInput("--baseline ", android.PathForModuleSrc(ctx, *l.properties.Lint.Baseline_filename)) } cmd.FlagWithOutput("--write-reference-baseline ", referenceBaseline) @@ -658,7 +646,7 @@ func (l *lintSingleton) generateLintReportZips(ctx android.SingletonContext) { } if apex, ok := m.(android.ApexModule); ok && apex.NotAvailableForPlatform() { - apexInfo := ctx.ModuleProvider(m, android.ApexInfoProvider).(android.ApexInfo) + apexInfo, _ := android.SingletonModuleProvider(ctx, m, android.ApexInfoProvider) if apexInfo.IsForPlatform() { // There are stray platform variants of modules in apexes that are not available for // the platform, and they sometimes can't be built. Don't depend on them. |