aboutsummaryrefslogtreecommitdiffstats
path: root/java/app_builder.go
diff options
context:
space:
mode:
authorKousik Kumar <kousikk@google.com>2020-05-28 06:13:33 -0700
committerKousik Kumar <kousikk@google.com>2020-05-30 19:58:58 +0000
commit15e9d0dbf8717d1224370c513fdaf733f6b3d456 (patch)
tree07ecd9ad96b14fd7824dc06d4280e20da5bd9e3c /java/app_builder.go
parentd8c3955119306a550e32b0103f51289dcbd4e2db (diff)
downloadbuild_soong-15e9d0dbf8717d1224370c513fdaf733f6b3d456.tar.gz
build_soong-15e9d0dbf8717d1224370c513fdaf733f6b3d456.tar.bz2
build_soong-15e9d0dbf8717d1224370c513fdaf733f6b3d456.zip
Add support for remote-execution / caching of signapk actions
Test: "RBE_SIGNAPK=true RBE_SIGNAPK_EXEC_STRATEGY=remote ... use_rbe m" on crosshatch-userdebug and signapk targets worked Bug: b/156765091 Change-Id: I4b8c21320c2f38914ef39d3d8f036d885fab4e72 Merged-In: I4b8c21320c2f38914ef39d3d8f036d885fab4e72
Diffstat (limited to 'java/app_builder.go')
-rw-r--r--java/app_builder.go30
1 files changed, 22 insertions, 8 deletions
diff --git a/java/app_builder.go b/java/app_builder.go
index 967c55fc..acc02f26 100644
--- a/java/app_builder.go
+++ b/java/app_builder.go
@@ -26,16 +26,23 @@ import (
"github.com/google/blueprint/proptools"
"android/soong/android"
+ "android/soong/remoteexec"
)
var (
- Signapk = pctx.AndroidStaticRule("signapk",
+ Signapk, SignapkRE = remoteexec.StaticRules(pctx, "signapk",
blueprint.RuleParams{
- Command: `${config.JavaCmd} ${config.JavaVmFlags} -Djava.library.path=$$(dirname ${config.SignapkJniLibrary}) ` +
+ Command: `$reTemplate${config.JavaCmd} ${config.JavaVmFlags} -Djava.library.path=$$(dirname ${config.SignapkJniLibrary}) ` +
`-jar ${config.SignapkCmd} $flags $certificates $in $out`,
CommandDeps: []string{"${config.SignapkCmd}", "${config.SignapkJniLibrary}"},
},
- "flags", "certificates")
+ &remoteexec.REParams{Labels: map[string]string{"type": "tool", "name": "signapk"},
+ ExecStrategy: "${config.RESignApkExecStrategy}",
+ Inputs: []string{"${config.SignapkCmd}", "$in", "$$(dirname ${config.SignapkJniLibrary})", "$implicits"},
+ OutputFiles: []string{"$outCommaList"},
+ ToolchainInputs: []string{"${config.JavaCmd}"},
+ Platform: map[string]string{remoteexec.PoolKey: "${config.REJavaPool}"},
+ }, []string{"flags", "certificates"}, []string{"implicits", "outCommaList"})
)
var combineApk = pctx.AndroidStaticRule("combineApk",
@@ -90,16 +97,23 @@ func SignAppPackage(ctx android.ModuleContext, signedApk android.WritablePath, u
deps = append(deps, lineageFile)
}
+ rule := Signapk
+ args := map[string]string{
+ "certificates": strings.Join(certificateArgs, " "),
+ "flags": strings.Join(flags, " "),
+ }
+ if ctx.Config().IsEnvTrue("RBE_SIGNAPK") {
+ rule = SignapkRE
+ args["implicits"] = strings.Join(deps.Strings(), ",")
+ args["outCommaList"] = strings.Join(outputFiles.Strings(), ",")
+ }
ctx.Build(pctx, android.BuildParams{
- Rule: Signapk,
+ Rule: rule,
Description: "signapk",
Outputs: outputFiles,
Input: unsignedApk,
Implicits: deps,
- Args: map[string]string{
- "certificates": strings.Join(certificateArgs, " "),
- "flags": strings.Join(flags, " "),
- },
+ Args: args,
})
}