Merge "Revert "Deduplicate APEX variants that would build identically"" am: fc4d79598c am: b1d3c4c4d7

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1403647

Change-Id: Ia2db2038480c3e09e7c82c1766f9b922e5cc6a11
This commit is contained in:
Treehugger Robot
2020-08-18 17:42:08 +00:00
committed by Automerger Merge Worker
12 changed files with 108 additions and 394 deletions

View File

@@ -1386,22 +1386,22 @@ func PrebuiltJars(ctx android.BaseModuleContext, baseName string, s sdkSpec) and
return android.Paths{jarPath.Path()}
}
// Get the apex names for module, nil if it is for platform.
func getApexNamesForModule(module android.Module) []string {
// Get the apex name for module, "" if it is for platform.
func getApexNameForModule(module android.Module) string {
if apex, ok := module.(android.ApexModule); ok {
return apex.InApexes()
return apex.ApexVariationName()
}
return nil
return ""
}
// Check to see if the other module is within the same set of named APEXes as this module.
// Check to see if the other module is within the same named APEX as this module.
//
// If either this or the other module are on the platform then this will return
// false.
func withinSameApexesAs(module android.ApexModule, other android.Module) bool {
names := module.InApexes()
return len(names) > 0 && reflect.DeepEqual(names, getApexNamesForModule(other))
func withinSameApexAs(module android.ApexModule, other android.Module) bool {
name := module.ApexVariationName()
return name != "" && getApexNameForModule(other) == name
}
func (module *SdkLibrary) sdkJars(ctx android.BaseModuleContext, sdkVersion sdkSpec, headerJars bool) android.Paths {
@@ -1420,7 +1420,7 @@ func (module *SdkLibrary) sdkJars(ctx android.BaseModuleContext, sdkVersion sdkS
// Only allow access to the implementation library in the following condition:
// * No sdk_version specified on the referencing module.
// * The referencing module is in the same apex as this.
if sdkVersion.kind == sdkPrivate || withinSameApexesAs(module, ctx.Module()) {
if sdkVersion.kind == sdkPrivate || withinSameApexAs(module, ctx.Module()) {
if headerJars {
return module.HeaderJars()
} else {
@@ -1959,7 +1959,7 @@ func (module *SdkLibraryImport) sdkJars(ctx android.BaseModuleContext, sdkVersio
// For consistency with SdkLibrary make the implementation jar available to libraries that
// are within the same APEX.
implLibraryModule := module.implLibraryModule
if implLibraryModule != nil && withinSameApexesAs(module, ctx.Module()) {
if implLibraryModule != nil && withinSameApexAs(module, ctx.Module()) {
if headerJars {
return implLibraryModule.HeaderJars()
} else {