Loading java/aar.go +52 −34 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package java import ( "fmt" "path/filepath" "slices" "strconv" "strings" Loading Loading @@ -110,7 +111,7 @@ type aaptProperties struct { type aapt struct { aaptSrcJar android.Path transitiveAaptRJars android.Paths transitiveAaptResourcePackages android.Paths transitiveAaptResourcePackagesFile android.Path exportPackage android.Path manifestPath android.Path proguardOptionsFile android.Path Loading Loading @@ -552,9 +553,16 @@ func (a *aapt) buildActions(ctx android.ModuleContext, opts aaptBuildActionOptio aapt2ExtractExtraPackages(ctx, extraPackages, srcJar) } transitiveAaptResourcePackages := staticDeps.resPackages().Strings() transitiveAaptResourcePackages = slices.DeleteFunc(transitiveAaptResourcePackages, func(p string) bool { return p == packageRes.String() }) transitiveAaptResourcePackagesFile := android.PathForModuleOut(ctx, "transitive-res-packages") android.WriteFileRule(ctx, transitiveAaptResourcePackagesFile, strings.Join(transitiveAaptResourcePackages, "\n")) a.aaptSrcJar = srcJar a.transitiveAaptRJars = transitiveRJars a.transitiveAaptResourcePackages = staticDeps.resPackages() a.transitiveAaptResourcePackagesFile = transitiveAaptResourcePackagesFile a.exportPackage = packageRes a.manifestPath = manifestPath a.proguardOptionsFile = proguardOptionsFile Loading Loading @@ -820,9 +828,13 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) proguardSpecInfo := a.collectProguardSpecInfo(ctx) ctx.SetProvider(ProguardSpecInfoProvider, proguardSpecInfo) a.exportedProguardFlagFiles = proguardSpecInfo.ProguardFlagsFiles.ToList() a.extraProguardFlagFiles = append(a.extraProguardFlagFiles, a.exportedProguardFlagFiles...) a.extraProguardFlagFiles = append(a.extraProguardFlagFiles, a.proguardOptionsFile) exportedProguardFlagsFiles := proguardSpecInfo.ProguardFlagsFiles.ToList() a.extraProguardFlagsFiles = append(a.extraProguardFlagsFiles, exportedProguardFlagsFiles...) a.extraProguardFlagsFiles = append(a.extraProguardFlagsFiles, a.proguardOptionsFile) combinedExportedProguardFlagFile := android.PathForModuleOut(ctx, "export_proguard_flags") writeCombinedProguardFlagsFile(ctx, combinedExportedProguardFlagFile, exportedProguardFlagsFiles) a.combinedExportedProguardFlagsFile = combinedExportedProguardFlagFile var extraSrcJars android.Paths var extraCombinedJars android.Paths Loading Loading @@ -943,7 +955,7 @@ type AARImport struct { classpathFile android.WritablePath proguardFlags android.WritablePath exportPackage android.WritablePath transitiveAaptResourcePackages android.Paths transitiveAaptResourcePackagesFile android.Path extraAaptPackagesFile android.WritablePath manifest android.WritablePath assetsPackage android.WritablePath Loading Loading @@ -1211,7 +1223,13 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { _ = staticManifestsDepSet a.manifestsDepSet = manifestDepSetBuilder.Build() a.transitiveAaptResourcePackages = staticDeps.resPackages() transitiveAaptResourcePackages := staticDeps.resPackages().Strings() transitiveAaptResourcePackages = slices.DeleteFunc(transitiveAaptResourcePackages, func(p string) bool { return p == a.exportPackage.String() }) transitiveAaptResourcePackagesFile := android.PathForModuleOut(ctx, "transitive-res-packages") android.WriteFileRule(ctx, transitiveAaptResourcePackagesFile, strings.Join(transitiveAaptResourcePackages, "\n")) a.transitiveAaptResourcePackagesFile = transitiveAaptResourcePackagesFile a.collectTransitiveHeaderJars(ctx) ctx.SetProvider(JavaInfoProvider, JavaInfo{ Loading java/androidmk.go +3 −3 Original line number Diff line number Diff line Loading @@ -274,7 +274,7 @@ func (prebuilt *AARImport) AndroidMkEntries() []android.AndroidMkEntries { entries.SetPath("LOCAL_SOONG_HEADER_JAR", prebuilt.classpathFile) entries.SetPath("LOCAL_SOONG_CLASSES_JAR", prebuilt.classpathFile) entries.SetPath("LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE", prebuilt.exportPackage) entries.SetPaths("LOCAL_SOONG_TRANSITIVE_RES_PACKAGES", prebuilt.transitiveAaptResourcePackages) entries.SetPath("LOCAL_SOONG_TRANSITIVE_RES_PACKAGES", prebuilt.transitiveAaptResourcePackagesFile) entries.SetPath("LOCAL_SOONG_EXPORT_PROGUARD_FLAGS", prebuilt.proguardFlags) entries.SetPath("LOCAL_SOONG_STATIC_LIBRARY_EXTRA_PACKAGES", prebuilt.extraAaptPackagesFile) entries.SetPath("LOCAL_FULL_MANIFEST_FILE", prebuilt.manifest) Loading Loading @@ -532,10 +532,10 @@ func (a *AndroidLibrary) AndroidMkEntries() []android.AndroidMkEntries { } entries.SetPath("LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE", a.exportPackage) entries.SetPaths("LOCAL_SOONG_TRANSITIVE_RES_PACKAGES", a.transitiveAaptResourcePackages) entries.SetPath("LOCAL_SOONG_TRANSITIVE_RES_PACKAGES", a.transitiveAaptResourcePackagesFile) entries.SetPath("LOCAL_SOONG_STATIC_LIBRARY_EXTRA_PACKAGES", a.extraAaptPackagesFile) entries.SetPath("LOCAL_FULL_MANIFEST_FILE", a.mergedManifestFile) entries.AddStrings("LOCAL_SOONG_EXPORT_PROGUARD_FLAGS", a.exportedProguardFlagFiles.Strings()...) entries.SetPath("LOCAL_SOONG_EXPORT_PROGUARD_FLAGS", a.combinedExportedProguardFlagsFile) entries.SetBoolIfTrue("LOCAL_UNINSTALLABLE_MODULE", true) entries.SetOptionalPaths("LOCAL_ACONFIG_FILES", a.getTransitiveAconfigFiles().ToList()) }) Loading java/app.go +2 −2 Original line number Diff line number Diff line Loading @@ -526,8 +526,8 @@ func (a *AndroidApp) proguardBuildActions(ctx android.ModuleContext) { staticLibProguardFlagFiles = android.FirstUniquePaths(staticLibProguardFlagFiles) a.Module.extraProguardFlagFiles = append(a.Module.extraProguardFlagFiles, staticLibProguardFlagFiles...) a.Module.extraProguardFlagFiles = append(a.Module.extraProguardFlagFiles, a.proguardOptionsFile) a.Module.extraProguardFlagsFiles = append(a.Module.extraProguardFlagsFiles, staticLibProguardFlagFiles...) a.Module.extraProguardFlagsFiles = append(a.Module.extraProguardFlagsFiles, a.proguardOptionsFile) } func (a *AndroidApp) installPath(ctx android.ModuleContext) android.InstallPath { Loading java/base.go +1 −1 Original line number Diff line number Diff line Loading @@ -1615,7 +1615,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath if ctx.Device() && (Bool(j.properties.Installable) || Bool(compileDex)) { if j.hasCode(ctx) { if j.shouldInstrumentStatic(ctx) { j.dexer.extraProguardFlagFiles = append(j.dexer.extraProguardFlagFiles, j.dexer.extraProguardFlagsFiles = append(j.dexer.extraProguardFlagsFiles, android.PathForSource(ctx, "build/make/core/proguard.jacoco.flags")) } // Dex compilation Loading java/builder.go +19 −0 Original line number Diff line number Diff line Loading @@ -264,6 +264,16 @@ var ( Command: `${config.Zip2ZipCmd} -i ${in} -o ${out} -x 'META-INF/services/**/*'`, CommandDeps: []string{"${config.Zip2ZipCmd}"}, }) writeCombinedProguardFlagsFileRule = pctx.AndroidStaticRule("writeCombinedProguardFlagsFileRule", blueprint.RuleParams{ Command: `rm -f $out && ` + `for f in $in; do ` + ` echo && ` + ` echo "# including $$f" && ` + ` cat $$f; ` + `done > $out`, }) ) func init() { Loading Loading @@ -686,6 +696,15 @@ func TransformZipAlign(ctx android.ModuleContext, outputFile android.WritablePat }) } func writeCombinedProguardFlagsFile(ctx android.ModuleContext, outputFile android.WritablePath, files android.Paths) { ctx.Build(pctx, android.BuildParams{ Rule: writeCombinedProguardFlagsFileRule, Description: "write combined proguard flags file", Inputs: files, Output: outputFile, }) } type classpath android.Paths func (x *classpath) formJoinedClassPath(optName string, sep string) string { Loading Loading
java/aar.go +52 −34 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package java import ( "fmt" "path/filepath" "slices" "strconv" "strings" Loading Loading @@ -110,7 +111,7 @@ type aaptProperties struct { type aapt struct { aaptSrcJar android.Path transitiveAaptRJars android.Paths transitiveAaptResourcePackages android.Paths transitiveAaptResourcePackagesFile android.Path exportPackage android.Path manifestPath android.Path proguardOptionsFile android.Path Loading Loading @@ -552,9 +553,16 @@ func (a *aapt) buildActions(ctx android.ModuleContext, opts aaptBuildActionOptio aapt2ExtractExtraPackages(ctx, extraPackages, srcJar) } transitiveAaptResourcePackages := staticDeps.resPackages().Strings() transitiveAaptResourcePackages = slices.DeleteFunc(transitiveAaptResourcePackages, func(p string) bool { return p == packageRes.String() }) transitiveAaptResourcePackagesFile := android.PathForModuleOut(ctx, "transitive-res-packages") android.WriteFileRule(ctx, transitiveAaptResourcePackagesFile, strings.Join(transitiveAaptResourcePackages, "\n")) a.aaptSrcJar = srcJar a.transitiveAaptRJars = transitiveRJars a.transitiveAaptResourcePackages = staticDeps.resPackages() a.transitiveAaptResourcePackagesFile = transitiveAaptResourcePackagesFile a.exportPackage = packageRes a.manifestPath = manifestPath a.proguardOptionsFile = proguardOptionsFile Loading Loading @@ -820,9 +828,13 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) proguardSpecInfo := a.collectProguardSpecInfo(ctx) ctx.SetProvider(ProguardSpecInfoProvider, proguardSpecInfo) a.exportedProguardFlagFiles = proguardSpecInfo.ProguardFlagsFiles.ToList() a.extraProguardFlagFiles = append(a.extraProguardFlagFiles, a.exportedProguardFlagFiles...) a.extraProguardFlagFiles = append(a.extraProguardFlagFiles, a.proguardOptionsFile) exportedProguardFlagsFiles := proguardSpecInfo.ProguardFlagsFiles.ToList() a.extraProguardFlagsFiles = append(a.extraProguardFlagsFiles, exportedProguardFlagsFiles...) a.extraProguardFlagsFiles = append(a.extraProguardFlagsFiles, a.proguardOptionsFile) combinedExportedProguardFlagFile := android.PathForModuleOut(ctx, "export_proguard_flags") writeCombinedProguardFlagsFile(ctx, combinedExportedProguardFlagFile, exportedProguardFlagsFiles) a.combinedExportedProguardFlagsFile = combinedExportedProguardFlagFile var extraSrcJars android.Paths var extraCombinedJars android.Paths Loading Loading @@ -943,7 +955,7 @@ type AARImport struct { classpathFile android.WritablePath proguardFlags android.WritablePath exportPackage android.WritablePath transitiveAaptResourcePackages android.Paths transitiveAaptResourcePackagesFile android.Path extraAaptPackagesFile android.WritablePath manifest android.WritablePath assetsPackage android.WritablePath Loading Loading @@ -1211,7 +1223,13 @@ func (a *AARImport) GenerateAndroidBuildActions(ctx android.ModuleContext) { _ = staticManifestsDepSet a.manifestsDepSet = manifestDepSetBuilder.Build() a.transitiveAaptResourcePackages = staticDeps.resPackages() transitiveAaptResourcePackages := staticDeps.resPackages().Strings() transitiveAaptResourcePackages = slices.DeleteFunc(transitiveAaptResourcePackages, func(p string) bool { return p == a.exportPackage.String() }) transitiveAaptResourcePackagesFile := android.PathForModuleOut(ctx, "transitive-res-packages") android.WriteFileRule(ctx, transitiveAaptResourcePackagesFile, strings.Join(transitiveAaptResourcePackages, "\n")) a.transitiveAaptResourcePackagesFile = transitiveAaptResourcePackagesFile a.collectTransitiveHeaderJars(ctx) ctx.SetProvider(JavaInfoProvider, JavaInfo{ Loading
java/androidmk.go +3 −3 Original line number Diff line number Diff line Loading @@ -274,7 +274,7 @@ func (prebuilt *AARImport) AndroidMkEntries() []android.AndroidMkEntries { entries.SetPath("LOCAL_SOONG_HEADER_JAR", prebuilt.classpathFile) entries.SetPath("LOCAL_SOONG_CLASSES_JAR", prebuilt.classpathFile) entries.SetPath("LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE", prebuilt.exportPackage) entries.SetPaths("LOCAL_SOONG_TRANSITIVE_RES_PACKAGES", prebuilt.transitiveAaptResourcePackages) entries.SetPath("LOCAL_SOONG_TRANSITIVE_RES_PACKAGES", prebuilt.transitiveAaptResourcePackagesFile) entries.SetPath("LOCAL_SOONG_EXPORT_PROGUARD_FLAGS", prebuilt.proguardFlags) entries.SetPath("LOCAL_SOONG_STATIC_LIBRARY_EXTRA_PACKAGES", prebuilt.extraAaptPackagesFile) entries.SetPath("LOCAL_FULL_MANIFEST_FILE", prebuilt.manifest) Loading Loading @@ -532,10 +532,10 @@ func (a *AndroidLibrary) AndroidMkEntries() []android.AndroidMkEntries { } entries.SetPath("LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE", a.exportPackage) entries.SetPaths("LOCAL_SOONG_TRANSITIVE_RES_PACKAGES", a.transitiveAaptResourcePackages) entries.SetPath("LOCAL_SOONG_TRANSITIVE_RES_PACKAGES", a.transitiveAaptResourcePackagesFile) entries.SetPath("LOCAL_SOONG_STATIC_LIBRARY_EXTRA_PACKAGES", a.extraAaptPackagesFile) entries.SetPath("LOCAL_FULL_MANIFEST_FILE", a.mergedManifestFile) entries.AddStrings("LOCAL_SOONG_EXPORT_PROGUARD_FLAGS", a.exportedProguardFlagFiles.Strings()...) entries.SetPath("LOCAL_SOONG_EXPORT_PROGUARD_FLAGS", a.combinedExportedProguardFlagsFile) entries.SetBoolIfTrue("LOCAL_UNINSTALLABLE_MODULE", true) entries.SetOptionalPaths("LOCAL_ACONFIG_FILES", a.getTransitiveAconfigFiles().ToList()) }) Loading
java/app.go +2 −2 Original line number Diff line number Diff line Loading @@ -526,8 +526,8 @@ func (a *AndroidApp) proguardBuildActions(ctx android.ModuleContext) { staticLibProguardFlagFiles = android.FirstUniquePaths(staticLibProguardFlagFiles) a.Module.extraProguardFlagFiles = append(a.Module.extraProguardFlagFiles, staticLibProguardFlagFiles...) a.Module.extraProguardFlagFiles = append(a.Module.extraProguardFlagFiles, a.proguardOptionsFile) a.Module.extraProguardFlagsFiles = append(a.Module.extraProguardFlagsFiles, staticLibProguardFlagFiles...) a.Module.extraProguardFlagsFiles = append(a.Module.extraProguardFlagsFiles, a.proguardOptionsFile) } func (a *AndroidApp) installPath(ctx android.ModuleContext) android.InstallPath { Loading
java/base.go +1 −1 Original line number Diff line number Diff line Loading @@ -1615,7 +1615,7 @@ func (j *Module) compile(ctx android.ModuleContext, extraSrcJars, extraClasspath if ctx.Device() && (Bool(j.properties.Installable) || Bool(compileDex)) { if j.hasCode(ctx) { if j.shouldInstrumentStatic(ctx) { j.dexer.extraProguardFlagFiles = append(j.dexer.extraProguardFlagFiles, j.dexer.extraProguardFlagsFiles = append(j.dexer.extraProguardFlagsFiles, android.PathForSource(ctx, "build/make/core/proguard.jacoco.flags")) } // Dex compilation Loading
java/builder.go +19 −0 Original line number Diff line number Diff line Loading @@ -264,6 +264,16 @@ var ( Command: `${config.Zip2ZipCmd} -i ${in} -o ${out} -x 'META-INF/services/**/*'`, CommandDeps: []string{"${config.Zip2ZipCmd}"}, }) writeCombinedProguardFlagsFileRule = pctx.AndroidStaticRule("writeCombinedProguardFlagsFileRule", blueprint.RuleParams{ Command: `rm -f $out && ` + `for f in $in; do ` + ` echo && ` + ` echo "# including $$f" && ` + ` cat $$f; ` + `done > $out`, }) ) func init() { Loading Loading @@ -686,6 +696,15 @@ func TransformZipAlign(ctx android.ModuleContext, outputFile android.WritablePat }) } func writeCombinedProguardFlagsFile(ctx android.ModuleContext, outputFile android.WritablePath, files android.Paths) { ctx.Build(pctx, android.BuildParams{ Rule: writeCombinedProguardFlagsFileRule, Description: "write combined proguard flags file", Inputs: files, Output: outputFile, }) } type classpath android.Paths func (x *classpath) formJoinedClassPath(optName string, sep string) string { Loading