Include proguard flag files from transitive java_library deps
Ensure proguard flag files specified by java_library targets propagate
to downstream targets. This matches bazel behavior, as well as
behavior for transitive android_library deps.
Bug: 212623640
Test: m + presubmit
Change-Id: I61abaf1fd43d6f06bb610383751bb26e9a1bafd6
diff --git a/java/aar.go b/java/aar.go
index 6261f29..eba8a41 100644
--- a/java/aar.go
+++ b/java/aar.go
@@ -29,8 +29,8 @@
)
type AndroidLibraryDependency interface {
+ LibraryDependency
ExportPackage() android.Path
- ExportedProguardFlagFiles() android.Paths
ExportedRRODirs() []rroDir
ExportedStaticPackages() android.Paths
ExportedManifests() android.Paths
@@ -498,8 +498,7 @@
aarFile android.WritablePath
- exportedProguardFlagFiles android.Paths
- exportedStaticPackages android.Paths
+ exportedStaticPackages android.Paths
}
var _ android.OutputFileProducer = (*AndroidLibrary)(nil)
@@ -514,10 +513,6 @@
}
}
-func (a *AndroidLibrary) ExportedProguardFlagFiles() android.Paths {
- return a.exportedProguardFlagFiles
-}
-
func (a *AndroidLibrary) ExportedStaticPackages() android.Paths {
return a.exportedStaticPackages
}
@@ -566,13 +561,16 @@
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()...)
- a.exportedStaticPackages = append(a.exportedStaticPackages, lib.ExportPackage())
- a.exportedStaticPackages = append(a.exportedStaticPackages, lib.ExportedStaticPackages()...)
+ 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()...)
+ }
}
})
-
a.exportedProguardFlagFiles = android.FirstUniquePaths(a.exportedProguardFlagFiles)
a.exportedStaticPackages = android.FirstUniquePaths(a.exportedStaticPackages)