From 6f7e288fb5ea2fb01d9093fd57081a82c09a6618 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Sat, 17 Dec 2022 03:14:10 +0000 Subject: [PATCH] Revert "Include proguard flag files from transitive java_library deps" This reverts commit 9c54f032b9dbef63b9ef235c2219a4e9124f8891. Reason for revert: b/262940536 Bug: b/262940536 Change-Id: I8140eacc7ca8716f799561412cb5cef29df35d29 --- java/aar.go | 22 +++++++++++--------- java/app.go | 2 +- java/dex_test.go | 54 ------------------------------------------------ java/java.go | 22 -------------------- 4 files changed, 13 insertions(+), 87 deletions(-) diff --git a/java/aar.go b/java/aar.go index eba8a4105..6261f2974 100644 --- a/java/aar.go +++ b/java/aar.go @@ -29,8 +29,8 @@ import ( ) type AndroidLibraryDependency interface { - LibraryDependency ExportPackage() android.Path + ExportedProguardFlagFiles() android.Paths ExportedRRODirs() []rroDir ExportedStaticPackages() android.Paths ExportedManifests() android.Paths @@ -498,7 +498,8 @@ type AndroidLibrary struct { aarFile android.WritablePath - exportedStaticPackages android.Paths + exportedProguardFlagFiles android.Paths + exportedStaticPackages android.Paths } var _ android.OutputFileProducer = (*AndroidLibrary)(nil) @@ -513,6 +514,10 @@ func (a *AndroidLibrary) OutputFiles(tag string) (android.Paths, error) { } } +func (a *AndroidLibrary) ExportedProguardFlagFiles() android.Paths { + return a.exportedProguardFlagFiles +} + func (a *AndroidLibrary) ExportedStaticPackages() android.Paths { return a.exportedStaticPackages } @@ -561,16 +566,13 @@ func (a *AndroidLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) a.exportedProguardFlagFiles = append(a.exportedProguardFlagFiles, android.PathsForModuleSrc(ctx, a.dexProperties.Optimize.Proguard_flags_files)...) ctx.VisitDirectDeps(func(m android.Module) { - if ctx.OtherModuleDependencyTag(m) == staticLibTag { - if lib, ok := m.(LibraryDependency); ok { - a.exportedProguardFlagFiles = append(a.exportedProguardFlagFiles, lib.ExportedProguardFlagFiles()...) - } - if alib, ok := m.(AndroidLibraryDependency); ok { - a.exportedStaticPackages = append(a.exportedStaticPackages, alib.ExportPackage()) - a.exportedStaticPackages = append(a.exportedStaticPackages, alib.ExportedStaticPackages()...) - } + if lib, ok := m.(AndroidLibraryDependency); ok && ctx.OtherModuleDependencyTag(m) == staticLibTag { + a.exportedProguardFlagFiles = append(a.exportedProguardFlagFiles, lib.ExportedProguardFlagFiles()...) + a.exportedStaticPackages = append(a.exportedStaticPackages, lib.ExportPackage()) + a.exportedStaticPackages = append(a.exportedStaticPackages, lib.ExportedStaticPackages()...) } }) + a.exportedProguardFlagFiles = android.FirstUniquePaths(a.exportedProguardFlagFiles) a.exportedStaticPackages = android.FirstUniquePaths(a.exportedStaticPackages) diff --git a/java/app.go b/java/app.go index 4f2df5063..bbd9d2db1 100755 --- a/java/app.go +++ b/java/app.go @@ -457,7 +457,7 @@ func (a *AndroidApp) aaptBuildActions(ctx android.ModuleContext) { func (a *AndroidApp) proguardBuildActions(ctx android.ModuleContext) { var staticLibProguardFlagFiles android.Paths ctx.VisitDirectDeps(func(m android.Module) { - if lib, ok := m.(LibraryDependency); ok && ctx.OtherModuleDependencyTag(m) == staticLibTag { + if lib, ok := m.(AndroidLibraryDependency); ok && ctx.OtherModuleDependencyTag(m) == staticLibTag { staticLibProguardFlagFiles = append(staticLibProguardFlagFiles, lib.ExportedProguardFlagFiles()...) } }) diff --git a/java/dex_test.go b/java/dex_test.go index fc6cd0f3f..66178732a 100644 --- a/java/dex_test.go +++ b/java/dex_test.go @@ -155,57 +155,3 @@ func TestD8(t *testing.T) { android.AssertStringDoesNotContain(t, "expected no static_lib header jar in foo javac classpath", fooD8.Args["d8Flags"], staticLibHeader.String()) } - -func TestProguardFlagsInheritance(t *testing.T) { - result := PrepareForTestWithJavaDefaultModulesWithoutFakeDex2oatd.RunTestWithBp(t, ` - android_app { - name: "app", - static_libs: [ - "primary_android_lib", - "primary_lib", - ], - platform_apis: true, - } - - java_library { - name: "primary_lib", - optimize: { - proguard_flags_files: ["primary.flags"], - }, - } - - android_library { - name: "primary_android_lib", - static_libs: ["secondary_lib"], - optimize: { - proguard_flags_files: ["primary_android.flags"], - }, - } - - java_library { - name: "secondary_lib", - static_libs: ["tertiary_lib"], - optimize: { - proguard_flags_files: ["secondary.flags"], - }, - } - - java_library { - name: "tertiary_lib", - optimize: { - proguard_flags_files: ["tertiary.flags"], - }, - } - `) - - app := result.ModuleForTests("app", "android_common") - appR8 := app.Rule("r8") - android.AssertStringDoesContain(t, "expected primary_lib's proguard flags from direct dep", - appR8.Args["r8Flags"], "primary.flags") - android.AssertStringDoesContain(t, "expected primary_android_lib's proguard flags from direct dep", - appR8.Args["r8Flags"], "primary_android.flags") - android.AssertStringDoesContain(t, "expected secondary_lib's proguard flags from inherited dep", - appR8.Args["r8Flags"], "secondary.flags") - android.AssertStringDoesContain(t, "expected tertiary_lib's proguard flags from inherited dep", - appR8.Args["r8Flags"], "tertiary.flags") -} diff --git a/java/java.go b/java/java.go index 959184687..5091d26a2 100644 --- a/java/java.go +++ b/java/java.go @@ -283,11 +283,6 @@ type UsesLibraryDependency interface { ClassLoaderContexts() dexpreopt.ClassLoaderContextMap } -// Provides transitive Proguard flag files to downstream DEX jars. -type LibraryDependency interface { - ExportedProguardFlagFiles() android.Paths -} - // TODO(jungjw): Move this to kythe.go once it's created. type xref interface { XrefJavaFiles() android.Paths @@ -590,17 +585,9 @@ func normalizeJavaVersion(ctx android.BaseModuleContext, javaVersion string) jav type Library struct { Module - exportedProguardFlagFiles android.Paths - InstallMixin func(ctx android.ModuleContext, installPath android.Path) (extraInstallDeps android.Paths) } -var _ LibraryDependency = (*Library)(nil) - -func (j *Library) ExportedProguardFlagFiles() android.Paths { - return j.exportedProguardFlagFiles -} - var _ android.ApexModule = (*Library)(nil) // Provides access to the list of permitted packages from apex boot jars. @@ -696,15 +683,6 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) { } j.installFile = ctx.InstallFile(installDir, j.Stem()+".jar", j.outputFile, extraInstallDeps...) } - - j.exportedProguardFlagFiles = append(j.exportedProguardFlagFiles, - android.PathsForModuleSrc(ctx, j.dexProperties.Optimize.Proguard_flags_files)...) - ctx.VisitDirectDeps(func(m android.Module) { - if lib, ok := m.(LibraryDependency); ok && ctx.OtherModuleDependencyTag(m) == staticLibTag { - j.exportedProguardFlagFiles = append(j.exportedProguardFlagFiles, lib.ExportedProguardFlagFiles()...) - } - }) - j.exportedProguardFlagFiles = android.FirstUniquePaths(j.exportedProguardFlagFiles) } func (j *Library) DepsMutator(ctx android.BottomUpMutatorContext) {