Loading java/aar.go +2 −0 Original line number Diff line number Diff line Loading @@ -536,6 +536,8 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) ctx.CheckbuildFile(a.aarFile) } a.exportedProguardFlagFiles = append(a.exportedProguardFlagFiles, android.PathsForModuleSrc(ctx, a.dexProperties.Optimize.Proguard_flags_files)...) ctx.VisitDirectDeps(func(m android.Module) { if lib, ok := m.(AndroidLibraryDependency); ok && ctx.OtherModuleDependencyTag(m) == staticLibTag { a.exportedProguardFlagFiles = append(a.exportedProguardFlagFiles, lib.ExportedProguardFlagFiles()...) Loading java/app_test.go +31 −0 Original line number Diff line number Diff line Loading @@ -3491,3 +3491,34 @@ func TestEnforceRRO_propagatesToDependencies(t *testing.T) { }) } } func TestExportedProguardFlagFiles(t *testing.T) { ctx, _ := testJava(t, ` android_app { name: "foo", sdk_version: "current", static_libs: ["lib1"], } android_library { name: "lib1", sdk_version: "current", optimize: { proguard_flags_files: ["lib1proguard.cfg"], } } `) m := ctx.ModuleForTests("foo", "android_common") hasLib1Proguard := false for _, s := range m.Rule("java.r8").Implicits.Strings() { if s == "lib1proguard.cfg" { hasLib1Proguard = true break } } if !hasLib1Proguard { t.Errorf("App does not use library proguard config") } } Loading
java/aar.go +2 −0 Original line number Diff line number Diff line Loading @@ -536,6 +536,8 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) ctx.CheckbuildFile(a.aarFile) } a.exportedProguardFlagFiles = append(a.exportedProguardFlagFiles, android.PathsForModuleSrc(ctx, a.dexProperties.Optimize.Proguard_flags_files)...) ctx.VisitDirectDeps(func(m android.Module) { if lib, ok := m.(AndroidLibraryDependency); ok && ctx.OtherModuleDependencyTag(m) == staticLibTag { a.exportedProguardFlagFiles = append(a.exportedProguardFlagFiles, lib.ExportedProguardFlagFiles()...) Loading
java/app_test.go +31 −0 Original line number Diff line number Diff line Loading @@ -3491,3 +3491,34 @@ func TestEnforceRRO_propagatesToDependencies(t *testing.T) { }) } } func TestExportedProguardFlagFiles(t *testing.T) { ctx, _ := testJava(t, ` android_app { name: "foo", sdk_version: "current", static_libs: ["lib1"], } android_library { name: "lib1", sdk_version: "current", optimize: { proguard_flags_files: ["lib1proguard.cfg"], } } `) m := ctx.ModuleForTests("foo", "android_common") hasLib1Proguard := false for _, s := range m.Rule("java.r8").Implicits.Strings() { if s == "lib1proguard.cfg" { hasLib1Proguard = true break } } if !hasLib1Proguard { t.Errorf("App does not use library proguard config") } }