Merge "transitive r8 flags for installable {android,java}_libraries" into main
This commit is contained in:
commit
d9569528bd
4 changed files with 96 additions and 56 deletions
11
java/aar.go
11
java/aar.go
|
@ -811,8 +811,11 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext)
|
|||
a.linter.manifest = a.aapt.manifestPath
|
||||
a.linter.resources = a.aapt.resourceFiles
|
||||
|
||||
a.Module.extraProguardFlagFiles = append(a.Module.extraProguardFlagFiles,
|
||||
a.proguardOptionsFile)
|
||||
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)
|
||||
|
||||
var extraSrcJars android.Paths
|
||||
var extraCombinedJars android.Paths
|
||||
|
@ -838,10 +841,6 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext)
|
|||
ctx.CheckbuildFile(a.aarFile)
|
||||
}
|
||||
|
||||
proguardSpecInfo := a.collectProguardSpecInfo(ctx)
|
||||
ctx.SetProvider(ProguardSpecInfoProvider, proguardSpecInfo)
|
||||
a.exportedProguardFlagFiles = proguardSpecInfo.ProguardFlagsFiles.ToList()
|
||||
|
||||
prebuiltJniPackages := android.Paths{}
|
||||
ctx.VisitDirectDeps(func(module android.Module) {
|
||||
if info, ok := ctx.OtherModuleProvider(module, JniPackageProvider).(JniPackageInfo); ok {
|
||||
|
|
|
@ -300,6 +300,8 @@ func (d *dexer) r8Flags(ctx android.ModuleContext, flags javaBuilderFlags) (r8Fl
|
|||
|
||||
flagFiles = append(flagFiles, android.PathsForModuleSrc(ctx, opt.Proguard_flags_files)...)
|
||||
|
||||
flagFiles = android.FirstUniquePaths(flagFiles)
|
||||
|
||||
r8Flags = append(r8Flags, android.JoinWithPrefix(flagFiles.Strings(), "-include "))
|
||||
r8Deps = append(r8Deps, flagFiles...)
|
||||
|
||||
|
|
|
@ -385,13 +385,53 @@ func TestProguardFlagsInheritanceStatic(t *testing.T) {
|
|||
func TestProguardFlagsInheritance(t *testing.T) {
|
||||
directDepFlagsFileName := "direct_dep.flags"
|
||||
transitiveDepFlagsFileName := "transitive_dep.flags"
|
||||
bp := `
|
||||
|
||||
topLevelModules := []struct {
|
||||
name string
|
||||
definition string
|
||||
}{
|
||||
{
|
||||
name: "android_app",
|
||||
definition: `
|
||||
android_app {
|
||||
name: "app",
|
||||
static_libs: ["androidlib"], // this must be static_libs to initate dexing
|
||||
platform_apis: true,
|
||||
}
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: "android_library",
|
||||
definition: `
|
||||
android_library {
|
||||
name: "app",
|
||||
static_libs: ["androidlib"], // this must be static_libs to initate dexing
|
||||
installable: true,
|
||||
optimize: {
|
||||
enabled: true,
|
||||
shrink: true,
|
||||
},
|
||||
}
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: "java_library",
|
||||
definition: `
|
||||
java_library {
|
||||
name: "app",
|
||||
static_libs: ["androidlib"], // this must be static_libs to initate dexing
|
||||
srcs: ["Foo.java"],
|
||||
installable: true,
|
||||
optimize: {
|
||||
enabled: true,
|
||||
shrink: true,
|
||||
},
|
||||
}
|
||||
`,
|
||||
},
|
||||
}
|
||||
|
||||
bp := `
|
||||
android_library {
|
||||
name: "androidlib",
|
||||
static_libs: ["app_dep"],
|
||||
|
@ -558,8 +598,9 @@ func TestProguardFlagsInheritance(t *testing.T) {
|
|||
},
|
||||
}
|
||||
|
||||
for _, topLevelModuleDef := range topLevelModules {
|
||||
for _, tc := range testcases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
t.Run(topLevelModuleDef.name+"-"+tc.name, func(t *testing.T) {
|
||||
result := android.GroupFixturePreparers(
|
||||
PrepareForTestWithJavaDefaultModules,
|
||||
android.FixtureMergeMockFs(android.MockFS{
|
||||
|
@ -567,6 +608,7 @@ func TestProguardFlagsInheritance(t *testing.T) {
|
|||
transitiveDepFlagsFileName: nil,
|
||||
}),
|
||||
).RunTestWithBp(t,
|
||||
topLevelModuleDef.definition+
|
||||
fmt.Sprintf(
|
||||
bp,
|
||||
tc.depType,
|
||||
|
@ -597,6 +639,7 @@ func TestProguardFlagsInheritance(t *testing.T) {
|
|||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestProguardFlagsInheritanceAppImport(t *testing.T) {
|
||||
bp := `
|
||||
|
@ -606,11 +649,6 @@ func TestProguardFlagsInheritanceAppImport(t *testing.T) {
|
|||
platform_apis: true,
|
||||
}
|
||||
|
||||
android_library {
|
||||
name: "androidlib",
|
||||
static_libs: ["aarimport"],
|
||||
}
|
||||
|
||||
android_library_import {
|
||||
name: "aarimport",
|
||||
aars: ["import.aar"],
|
||||
|
|
|
@ -697,6 +697,11 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||
|
||||
j.stem = proptools.StringDefault(j.overridableDeviceProperties.Stem, ctx.ModuleName())
|
||||
|
||||
proguardSpecInfo := j.collectProguardSpecInfo(ctx)
|
||||
ctx.SetProvider(ProguardSpecInfoProvider, proguardSpecInfo)
|
||||
j.exportedProguardFlagFiles = proguardSpecInfo.ProguardFlagsFiles.ToList()
|
||||
j.extraProguardFlagFiles = append(j.extraProguardFlagFiles, j.exportedProguardFlagFiles...)
|
||||
|
||||
apexInfo := ctx.Provider(android.ApexInfoProvider).(android.ApexInfo)
|
||||
if !apexInfo.IsForPlatform() {
|
||||
j.hideApexVariantFromMake = true
|
||||
|
@ -741,10 +746,6 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
|||
}
|
||||
j.installFile = ctx.InstallFile(installDir, j.Stem()+".jar", j.outputFile, extraInstallDeps...)
|
||||
}
|
||||
|
||||
proguardSpecInfo := j.collectProguardSpecInfo(ctx)
|
||||
ctx.SetProvider(ProguardSpecInfoProvider, proguardSpecInfo)
|
||||
j.exportedProguardFlagFiles = proguardSpecInfo.ProguardFlagsFiles.ToList()
|
||||
}
|
||||
|
||||
func (j *Library) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
|
|
Loading…
Reference in a new issue