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
This commit is contained in:
@@ -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,
|
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 := rule.Command()
|
||||||
|
cmd.FlagWithArg("ANDROID_SDK_HOME=", homeDir.String())
|
||||||
|
|
||||||
if ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_METALAVA") {
|
if ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_METALAVA") {
|
||||||
rule.Remoteable(android.RemoteRuleSupports{RBE: true})
|
rule.Remoteable(android.RemoteRuleSupports{RBE: true})
|
||||||
pool := ctx.Config().GetenvWithDefault("RBE_METALAVA_POOL", "metalava")
|
pool := ctx.Config().GetenvWithDefault("RBE_METALAVA_POOL", "metalava")
|
||||||
@@ -1214,7 +1220,10 @@ func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersi
|
|||||||
execStrategy = remoteexec.LocalExecStrategy
|
execStrategy = remoteexec.LocalExecStrategy
|
||||||
labels["shallow"] = "true"
|
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 != "" {
|
if v := ctx.Config().Getenv("RBE_METALAVA_INPUTS"); v != "" {
|
||||||
inputs = append(inputs, strings.Split(v, ",")...)
|
inputs = append(inputs, strings.Split(v, ",")...)
|
||||||
}
|
}
|
||||||
@@ -1225,6 +1234,7 @@ func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersi
|
|||||||
RSPFile: implicitsRsp.String(),
|
RSPFile: implicitsRsp.String(),
|
||||||
ToolchainInputs: []string{config.JavaCmd(ctx).String()},
|
ToolchainInputs: []string{config.JavaCmd(ctx).String()},
|
||||||
Platform: map[string]string{remoteexec.PoolKey: pool},
|
Platform: map[string]string{remoteexec.PoolKey: pool},
|
||||||
|
EnvironmentVariables: []string{"ANDROID_SDK_HOME"},
|
||||||
}).NoVarTemplate(ctx.Config()))
|
}).NoVarTemplate(ctx.Config()))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1302,9 +1312,9 @@ func (d *Droidstubs) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
srcJarList := zipSyncCmd(ctx, rule, srcJarDir, d.Javadoc.srcJars)
|
srcJarList := zipSyncCmd(ctx, rule, srcJarDir, d.Javadoc.srcJars)
|
||||||
|
|
||||||
implicitsRsp := android.PathForModuleOut(ctx, ctx.ModuleName()+"-"+"implicits.rsp")
|
implicitsRsp := android.PathForModuleOut(ctx, ctx.ModuleName()+"-"+"implicits.rsp")
|
||||||
|
homeDir := android.PathForModuleOut(ctx, "metalava-home")
|
||||||
cmd := metalavaCmd(ctx, rule, javaVersion, d.Javadoc.srcFiles, srcJarList,
|
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))
|
Bool(d.Javadoc.properties.Sandbox))
|
||||||
cmd.Implicits(d.Javadoc.implicits)
|
cmd.Implicits(d.Javadoc.implicits)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user