Merge "Refactor .aar resource compilation"
This commit is contained in:
18
java/aar.go
18
java/aar.go
@@ -245,7 +245,7 @@ func (a *aapt) buildActions(ctx android.ModuleContext, sdkContext sdkContext, ex
|
||||
|
||||
for i, zip := range resZips {
|
||||
flata := android.PathForModuleOut(ctx, fmt.Sprintf("reszip.%d.flata", i))
|
||||
aapt2CompileZip(ctx, flata, zip)
|
||||
aapt2CompileZip(ctx, flata, zip, "")
|
||||
compiledResDirs = append(compiledResDirs, android.Paths{flata})
|
||||
}
|
||||
|
||||
@@ -556,13 +556,13 @@ func (a *AARImport) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
}
|
||||
|
||||
// Unzip an AAR into its constituent files and directories. Any files in Outputs that don't exist in the AAR will be
|
||||
// touched to create an empty file, and any directories in $expectedDirs will be created.
|
||||
// touched to create an empty file. The res directory is not extracted, as it will be extracted in its own rule.
|
||||
var unzipAAR = pctx.AndroidStaticRule("unzipAAR",
|
||||
blueprint.RuleParams{
|
||||
Command: `rm -rf $outDir && mkdir -p $outDir $expectedDirs && ` +
|
||||
`unzip -qo -d $outDir $in && touch $out`,
|
||||
Command: `rm -rf $outDir && mkdir -p $outDir && ` +
|
||||
`unzip -qo -d $outDir $in && rm -rf $outDir/res && touch $out`,
|
||||
},
|
||||
"expectedDirs", "outDir")
|
||||
"outDir")
|
||||
|
||||
func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
if len(a.properties.Aars) != 1 {
|
||||
@@ -580,7 +580,6 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
}
|
||||
|
||||
extractedAARDir := android.PathForModuleOut(ctx, "aar")
|
||||
extractedResDir := extractedAARDir.Join(ctx, "res")
|
||||
a.classpathFile = extractedAARDir.Join(ctx, "classes.jar")
|
||||
a.proguardFlags = extractedAARDir.Join(ctx, "proguard.txt")
|
||||
a.manifest = extractedAARDir.Join(ctx, "AndroidManifest.xml")
|
||||
@@ -591,16 +590,13 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
Outputs: android.WritablePaths{a.classpathFile, a.proguardFlags, a.manifest},
|
||||
Description: "unzip AAR",
|
||||
Args: map[string]string{
|
||||
"expectedDirs": extractedResDir.String(),
|
||||
"outDir": extractedAARDir.String(),
|
||||
"outDir": extractedAARDir.String(),
|
||||
},
|
||||
})
|
||||
|
||||
compiledResDir := android.PathForModuleOut(ctx, "flat-res")
|
||||
aaptCompileDeps := android.Paths{a.classpathFile}
|
||||
aaptCompileDirs := android.Paths{extractedResDir}
|
||||
flata := compiledResDir.Join(ctx, "gen_res.flata")
|
||||
aapt2CompileDirs(ctx, flata, aaptCompileDirs, aaptCompileDeps)
|
||||
aapt2CompileZip(ctx, flata, aar, "res")
|
||||
|
||||
a.exportPackage = android.PathForModuleOut(ctx, "package-res.apk")
|
||||
srcJar := android.PathForModuleGen(ctx, "R.jar")
|
||||
|
Reference in New Issue
Block a user