Enable restat for sbox rules
Add support to sbox for only writing output files if they are changed to support enabling restat. Move the clearing of the output directory into sbox, and when write if changed is enabled delete obsolete output files without deleting output files that will be replaced. Enable restat for local metalava rules. Restat for metalava rules run remotely is still blocked on b/183630617. Bug: 222095735 Test: TestRuleBuilder_Build Test: m SystemUI Change-Id: If8fc47e711f4a6f43947ab69f17cccc8ba6ae61a
This commit is contained in:
@@ -433,6 +433,10 @@ func (d *Droidstubs) apiLevelsAnnotationsFlags(ctx android.ModuleContext, cmd *a
|
||||
}
|
||||
}
|
||||
|
||||
func metalavaUseRbe(ctx android.ModuleContext) bool {
|
||||
return ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_METALAVA")
|
||||
}
|
||||
|
||||
func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersion javaVersion, srcs android.Paths,
|
||||
srcJarList android.Path, bootclasspath, classpath classpath, homeDir android.WritablePath) *android.RuleBuilderCommand {
|
||||
rule.Command().Text("rm -rf").Flag(homeDir.String())
|
||||
@@ -441,7 +445,7 @@ func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersi
|
||||
cmd := rule.Command()
|
||||
cmd.FlagWithArg("ANDROID_PREFS_ROOT=", homeDir.String())
|
||||
|
||||
if ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_METALAVA") {
|
||||
if metalavaUseRbe(ctx) {
|
||||
rule.Remoteable(android.RemoteRuleSupports{RBE: true})
|
||||
execStrategy := ctx.Config().GetenvWithDefault("RBE_METALAVA_EXEC_STRATEGY", remoteexec.LocalExecStrategy)
|
||||
labels := map[string]string{"type": "tool", "name": "metalava"}
|
||||
@@ -665,7 +669,9 @@ func (d *Droidstubs) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
}
|
||||
|
||||
// TODO(b/183630617): rewrapper doesn't support restat rules
|
||||
// rule.Restat()
|
||||
if !metalavaUseRbe(ctx) {
|
||||
rule.Restat()
|
||||
}
|
||||
|
||||
zipSyncCleanupCmd(rule, srcJarDir)
|
||||
|
||||
|
Reference in New Issue
Block a user