diff options
author | 2021-03-05 11:14:18 -0800 | |
---|---|---|
committer | 2021-03-05 14:01:44 -0800 | |
commit | 382ba06c272d9e0e285ece80c4061854a81f2cd9 (patch) | |
tree | f079db4f3f9e7c413b8b57c58e2daef0bebfb0e1 /java/droiddoc.go | |
parent | 31972dc48723c6cfdf5b41a0165b9c81cbe76b88 (diff) |
Pass ANDROID_SDK_HOME to metalava so it doesn't write to ~/.android
Give metalava an ANDROID_SDK_HOME directory in the out tree so it
doesn't write to ~/.android.
Bug: 181908035
Test: mv ~/.android ~/.android.bak && m car-doc-stubs
Change-Id: I63064ece62ff4aa1eb93cbb6c9e33038c1e8a19d
Diffstat (limited to 'java/droiddoc.go')
-rw-r--r-- | java/droiddoc.go | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/java/droiddoc.go b/java/droiddoc.go index 8f1644c7f..f0decec74 100644 --- a/java/droiddoc.go +++ b/java/droiddoc.go @@ -1203,8 +1203,14 @@ func (d *Droidstubs) apiLevelsAnnotationsFlags(ctx android.ModuleContext, cmd *a } func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersion javaVersion, srcs android.Paths, - srcJarList android.Path, bootclasspath, classpath classpath, sourcepaths android.Paths, implicitsRsp android.WritablePath, sandbox bool) *android.RuleBuilderCommand { + srcJarList android.Path, bootclasspath, classpath classpath, sourcepaths android.Paths, + implicitsRsp, homeDir android.WritablePath, sandbox bool) *android.RuleBuilderCommand { + rule.Command().Text("rm -rf").Flag(homeDir.String()) + rule.Command().Text("mkdir -p").Flag(homeDir.String()) + cmd := rule.Command() + cmd.FlagWithArg("ANDROID_SDK_HOME=", homeDir.String()) + if ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_METALAVA") { rule.Remoteable(android.RemoteRuleSupports{RBE: true}) pool := ctx.Config().GetenvWithDefault("RBE_METALAVA_POOL", "metalava") @@ -1214,17 +1220,21 @@ func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersi execStrategy = remoteexec.LocalExecStrategy labels["shallow"] = "true" } - inputs := []string{android.PathForOutput(ctx, "host", ctx.Config().PrebuiltOS(), "framework", "metalava.jar").String()} + inputs := []string{ + ctx.Config().HostJavaToolPath(ctx, "metalava").String(), + homeDir.String(), + } if v := ctx.Config().Getenv("RBE_METALAVA_INPUTS"); v != "" { inputs = append(inputs, strings.Split(v, ",")...) } cmd.Text((&remoteexec.REParams{ - Labels: labels, - ExecStrategy: execStrategy, - Inputs: inputs, - RSPFile: implicitsRsp.String(), - ToolchainInputs: []string{config.JavaCmd(ctx).String()}, - Platform: map[string]string{remoteexec.PoolKey: pool}, + Labels: labels, + ExecStrategy: execStrategy, + Inputs: inputs, + RSPFile: implicitsRsp.String(), + ToolchainInputs: []string{config.JavaCmd(ctx).String()}, + Platform: map[string]string{remoteexec.PoolKey: pool}, + EnvironmentVariables: []string{"ANDROID_SDK_HOME"}, }).NoVarTemplate(ctx.Config())) } @@ -1302,9 +1312,9 @@ func (d *Droidstubs) GenerateAndroidBuildActions(ctx android.ModuleContext) { srcJarList := zipSyncCmd(ctx, rule, srcJarDir, d.Javadoc.srcJars) implicitsRsp := android.PathForModuleOut(ctx, ctx.ModuleName()+"-"+"implicits.rsp") - + homeDir := android.PathForModuleOut(ctx, "metalava-home") cmd := metalavaCmd(ctx, rule, javaVersion, d.Javadoc.srcFiles, srcJarList, - deps.bootClasspath, deps.classpath, d.Javadoc.sourcepaths, implicitsRsp, + deps.bootClasspath, deps.classpath, d.Javadoc.sourcepaths, implicitsRsp, homeDir, Bool(d.Javadoc.properties.Sandbox)) cmd.Implicits(d.Javadoc.implicits) |