diff options
Diffstat (limited to 'java/app_builder.go')
-rw-r--r-- | java/app_builder.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/java/app_builder.go b/java/app_builder.go index 945d7bdb..954ca446 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(), + }, + }) +} |