Merge "Respect provides_uses_lib
for modules added via [optional_]uses_libs
" am: ae5cdfffa3
am: a9860b8a8f
am: 939809b6ce
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1609480 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I4b3a08efc7c173054d0530777f17a7aa3e0dd8d7
This commit is contained in:
committed by
Automerger Merge Worker
commit
70de658eb1
20
java/app.go
20
java/app.go
@@ -1217,6 +1217,15 @@ func (u *usesLibrary) presentOptionalUsesLibs(ctx android.BaseModuleContext) []s
|
||||
return optionalUsesLibs
|
||||
}
|
||||
|
||||
// Helper function to replace string in a list.
|
||||
func replaceInList(list []string, oldstr, newstr string) {
|
||||
for i, str := range list {
|
||||
if str == oldstr {
|
||||
list[i] = newstr
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Returns a map of module names of shared library dependencies to the paths
|
||||
// to their dex jars on host and on device.
|
||||
func (u *usesLibrary) classLoaderContextForUsesLibDeps(ctx android.ModuleContext) dexpreopt.ClassLoaderContextMap {
|
||||
@@ -1227,7 +1236,16 @@ func (u *usesLibrary) classLoaderContextForUsesLibDeps(ctx android.ModuleContext
|
||||
if tag, ok := ctx.OtherModuleDependencyTag(m).(usesLibraryDependencyTag); ok {
|
||||
dep := ctx.OtherModuleName(m)
|
||||
if lib, ok := m.(UsesLibraryDependency); ok {
|
||||
clcMap.AddContext(ctx, tag.sdkVersion, dep,
|
||||
libName := dep
|
||||
if ulib, ok := m.(ProvidesUsesLib); ok && ulib.ProvidesUsesLib() != nil {
|
||||
libName = *ulib.ProvidesUsesLib()
|
||||
// Replace module name with library name in `uses_libs`/`optional_uses_libs`
|
||||
// in order to pass verify_uses_libraries check (which compares these
|
||||
// properties against library names written in the manifest).
|
||||
replaceInList(u.usesLibraryProperties.Uses_libs, dep, libName)
|
||||
replaceInList(u.usesLibraryProperties.Optional_uses_libs, dep, libName)
|
||||
}
|
||||
clcMap.AddContext(ctx, tag.sdkVersion, libName,
|
||||
lib.DexJarBuildPath(), lib.DexJarInstallPath(), lib.ClassLoaderContexts())
|
||||
} else if ctx.Config().AllowMissingDependencies() {
|
||||
ctx.AddMissingDependencies([]string{dep})
|
||||
|
Reference in New Issue
Block a user