aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2020-06-23 10:22:49 -0700
committerColin Cross <ccross@android.com>2020-06-23 14:45:04 -0700
commitbca9028825d3130762e2b9cb6de4a8a7f85010b6 (patch)
tree6b200f746380ec18204892a0011d5af84a272050
parent205a504053505699fbf19bb38ec07f8674a8fb1b (diff)
downloadbuild_soong-bca9028825d3130762e2b9cb6de4a8a7f85010b6.tar.gz
build_soong-bca9028825d3130762e2b9cb6de4a8a7f85010b6.tar.bz2
build_soong-bca9028825d3130762e2b9cb6de4a8a7f85010b6.zip
Set ANDROID_SDK_HOME when running lint
Lint tries to create ~/.android, set ANDROID_SDK_HOME to keep it from attempting to write to the home directory, which may not be writable. Test: run lint Bug: 159676171 Change-Id: I16375b88d309a8fa416b3a8efeabe15759889ae3 Merged-In: I16375b88d309a8fa416b3a8efeabe15759889ae3 (cherry picked from commit 977b6a822d4239c6af060340c1670582c6af647d)
-rw-r--r--java/lint.go14
1 files changed, 8 insertions, 6 deletions
diff --git a/java/lint.go b/java/lint.go
index fac9a198..ca87dbab 100644
--- a/java/lint.go
+++ b/java/lint.go
@@ -88,7 +88,7 @@ func (l *linter) deps(ctx android.BottomUpMutatorContext) {
}
func (l *linter) writeLintProjectXML(ctx android.ModuleContext,
- rule *android.RuleBuilder) (projectXMLPath, configXMLPath, cacheDir android.WritablePath, deps android.Paths) {
+ rule *android.RuleBuilder) (projectXMLPath, configXMLPath, cacheDir, homeDir android.WritablePath, deps android.Paths) {
var resourcesList android.WritablePath
if len(l.resources) > 0 {
@@ -106,6 +106,7 @@ func (l *linter) writeLintProjectXML(ctx android.ModuleContext,
// Lint looks for a lint.xml file next to the project.xml file, give it one.
configXMLPath = android.PathForModuleOut(ctx, "lint", "lint.xml")
cacheDir = android.PathForModuleOut(ctx, "lint", "cache")
+ homeDir = android.PathForModuleOut(ctx, "lint", "home")
srcJarDir := android.PathForModuleOut(ctx, "lint-srcjars")
srcJarList := zipSyncCmd(ctx, rule, srcJarDir, l.srcJars)
@@ -165,7 +166,7 @@ func (l *linter) writeLintProjectXML(ctx android.ModuleContext,
cmd.FlagForEachArg("--error_check ", l.properties.Lint.Error_checks)
cmd.FlagForEachArg("--fatal_check ", l.properties.Lint.Fatal_checks)
- return projectXMLPath, configXMLPath, cacheDir, deps
+ return projectXMLPath, configXMLPath, cacheDir, homeDir, deps
}
// generateManifest adds a command to the rule to write a dummy manifest cat contains the
@@ -207,18 +208,19 @@ func (l *linter) lint(ctx android.ModuleContext) {
l.manifest = manifest
}
- projectXML, lintXML, cacheDir, deps := l.writeLintProjectXML(ctx, rule)
+ projectXML, lintXML, cacheDir, homeDir, deps := l.writeLintProjectXML(ctx, rule)
l.outputs.html = android.PathForModuleOut(ctx, "lint-report.html")
l.outputs.text = android.PathForModuleOut(ctx, "lint-report.txt")
l.outputs.xml = android.PathForModuleOut(ctx, "lint-report.xml")
- rule.Command().Text("rm -rf").Flag(cacheDir.String())
- rule.Command().Text("mkdir -p").Flag(cacheDir.String())
+ rule.Command().Text("rm -rf").Flag(cacheDir.String()).Flag(homeDir.String())
+ rule.Command().Text("mkdir -p").Flag(cacheDir.String()).Flag(homeDir.String())
rule.Command().
Text("(").
Flag("JAVA_OPTS=-Xmx2048m").
+ FlagWithArg("ANDROID_SDK_HOME=", homeDir.String()).
FlagWithInput("SDK_ANNOTATIONS=", annotationsZipPath(ctx)).
FlagWithInput("LINT_OPTS=-DLINT_API_DATABASE=", apiVersionsXmlPath(ctx)).
Tool(android.PathForSource(ctx, "prebuilts/cmdline-tools/tools/bin/lint")).
@@ -239,7 +241,7 @@ func (l *linter) lint(ctx android.ModuleContext) {
Text("|| (").Text("cat").Input(l.outputs.text).Text("; exit 7)").
Text(")")
- rule.Command().Text("rm -rf").Flag(cacheDir.String())
+ rule.Command().Text("rm -rf").Flag(cacheDir.String()).Flag(homeDir.String())
rule.Build(pctx, ctx, "lint", "lint")
}