Fix soong crashing when there's no baseline file
Soong was referencing the baseline file regardless of whether it was valid or not. Also update the lint message to match the one metalava itself prints, which only suggests whitelisting the error if it's not possible to fix it properly. Bug: 154616909 Test: m (with lint error) Change-Id: I4c6ec327a59aefe74825b4c4719393dd267ba3aa
This commit is contained in:
parent
101a7622fe
commit
34ced82d2a
1 changed files with 24 additions and 7 deletions
|
@ -1489,20 +1489,37 @@ func (d *Droidstubs) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||
updatedBaselineOutput := android.PathForModuleOut(ctx, "api_lint_baseline.txt")
|
||||
d.apiLintTimestamp = android.PathForModuleOut(ctx, "api_lint.timestamp")
|
||||
|
||||
msg := `` +
|
||||
`************************************************************\n` +
|
||||
`Your API changes are triggering API Lint warnings or errors.\n` +
|
||||
`To make these errors go away, fix the code according to the\n` +
|
||||
`error and/or warning messages above.\n` +
|
||||
`\n` +
|
||||
`If it's not possible to do so, there are workarounds:\n` +
|
||||
`\n` +
|
||||
`1. You can suppress the errors with @SuppressLint(\"<id>\")\n`
|
||||
|
||||
if baselineFile.Valid() {
|
||||
cmd.FlagWithInput("--baseline ", baselineFile.Path())
|
||||
cmd.FlagWithOutput("--update-baseline ", updatedBaselineOutput)
|
||||
|
||||
msg += fmt.Sprintf(``+
|
||||
`2. You can update the baseline by executing the following\n`+
|
||||
` command:\n`+
|
||||
` cp \\ \n`+
|
||||
` \"$PWD/%s\" \\ \n`+
|
||||
` \"$PWD/%s\" \n`+
|
||||
` To submit the revised baseline.txt to the main Android\n`+
|
||||
` repository, you will need approval.\n`, updatedBaselineOutput, baselineFile.Path())
|
||||
} else {
|
||||
msg += fmt.Sprintf(``+
|
||||
`2. You can add a baseline file of existing lint failures\n`+
|
||||
` to the build rule of %s.\n`, d.Name())
|
||||
}
|
||||
msg += `************************************************************\n`
|
||||
|
||||
zipSyncCleanupCmd(rule, srcJarDir)
|
||||
|
||||
msg := fmt.Sprintf(`\n******************************\n`+
|
||||
`Your API changes are triggering API Lint warnings or errors.\n\n`+
|
||||
`To make these errors go away, you have two choices:\n`+
|
||||
` 1. You can suppress the errors with @SuppressLint(\"<id>\").\n\n`+
|
||||
` 2. You can update the baseline by executing the following command:\n`+
|
||||
` cp \"$PWD/%s\" \"$PWD/%s\"\n\n`+
|
||||
`******************************\n`, updatedBaselineOutput, baselineFile.Path())
|
||||
rule.Command().
|
||||
Text("touch").Output(d.apiLintTimestamp).
|
||||
Text(") || (").
|
||||
|
|
Loading…
Reference in a new issue