diff --git a/java/base.go b/java/base.go index db237dac0..4168e082a 100644 --- a/java/base.go +++ b/java/base.go @@ -641,6 +641,11 @@ func (j *Module) OutputFiles(tag string) (android.Paths, error) { return nil, fmt.Errorf("%q was requested, but no output file was found.", tag) case ".generated_srcjars": return j.properties.Generated_srcjars, nil + case ".lint": + if j.linter.outputs.xml != nil { + return android.Paths{j.linter.outputs.xml}, nil + } + return nil, fmt.Errorf("%q was requested, but no output file was found.", tag) default: return nil, fmt.Errorf("unsupported module reference tag %q", tag) } diff --git a/java/lint.go b/java/lint.go index f84f1c065..34720e51d 100644 --- a/java/lint.go +++ b/java/lint.go @@ -66,6 +66,10 @@ type LintProperties struct { // This will be true by default for test module types, false otherwise. // If soong gets support for testonly, this flag should be replaced with that. Test *bool + + // Whether to ignore the exit code of Android lint. This is the --exit_code + // option. Defaults to false. + Suppress_exit_code *bool } } @@ -504,7 +508,8 @@ func (l *linter) lint(ctx android.ModuleContext) { rule.Temporary(lintPaths.projectXML) rule.Temporary(lintPaths.configXML) - if exitCode := ctx.Config().Getenv("ANDROID_LINT_SUPPRESS_EXIT_CODE"); exitCode == "" { + suppressExitCode := BoolDefault(l.properties.Lint.Suppress_exit_code, false) + if exitCode := ctx.Config().Getenv("ANDROID_LINT_SUPPRESS_EXIT_CODE"); exitCode == "" && !suppressExitCode { cmd.Flag("--exitcode") }