summaryrefslogtreecommitdiff
path: root/java/app_builder.go
diff options
context:
space:
mode:
author Colin Cross <ccross@android.com> 2018-03-28 14:58:31 -0700
committer Colin Cross <ccross@android.com> 2018-04-16 15:24:47 -0700
commita97c5d3f08c1df08c73cee4808feb3c1e015bdc8 (patch)
treee5e21a8264e93af5c588f4780ca4dee874245572 /java/app_builder.go
parentad6cbf18da303f1bd498a4ecf7856a23eeccfca5 (diff)
Add support for android_library modules
Add support for compiling android_library modules into AARs, and refactor app support on top of it. Bug: 73724997 Test: app_test.go Change-Id: I1dfac5fffe577c6680bc4709147b2061eb7d819c
Diffstat (limited to 'java/app_builder.go')
-rw-r--r--java/app_builder.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/java/app_builder.go b/java/app_builder.go
index 945d7bdb3..954ca4464 100644
--- a/java/app_builder.go
+++ b/java/app_builder.go
@@ -96,3 +96,39 @@ func CreateAppPackage(ctx android.ModuleContext, outputFile android.WritablePath
},
})
}
+
+var buildAAR = pctx.AndroidStaticRule("buildAAR",
+ blueprint.RuleParams{
+ Command: `rm -rf ${outDir} && mkdir -p ${outDir} && ` +
+ `cp ${manifest} ${outDir}/AndroidManifest.xml && ` +
+ `cp ${classesJar} ${outDir}/classes.jar && ` +
+ `cp ${rTxt} ${outDir}/R.txt && ` +
+ `${config.SoongZipCmd} -jar -o $out -C ${outDir} -D ${outDir} ${resArgs}`,
+ CommandDeps: []string{"${config.SoongZipCmd}"},
+ },
+ "manifest", "classesJar", "rTxt", "resArgs", "outDir")
+
+func BuildAAR(ctx android.ModuleContext, outputFile android.WritablePath,
+ classesJar, manifest, rTxt android.Path, res android.Paths) {
+
+ // TODO(ccross): uniquify and copy resources with dependencies
+
+ deps := android.Paths{manifest, rTxt}
+ classesJarPath := ""
+ if classesJar != nil {
+ deps = append(deps, classesJar)
+ classesJarPath = classesJar.String()
+ }
+
+ ctx.Build(pctx, android.BuildParams{
+ Rule: buildAAR,
+ Implicits: deps,
+ Output: outputFile,
+ Args: map[string]string{
+ "manifest": manifest.String(),
+ "classesJar": classesJarPath,
+ "rTxt": rTxt.String(),
+ "outDir": android.PathForModuleOut(ctx, "aar").String(),
+ },
+ })
+}