Merge "Replace `is_uses_lib` property with `provides_uses_lib`."
diff --git a/java/app.go b/java/app.go
index 406894d..14437a9 100755
--- a/java/app.go
+++ b/java/app.go
@@ -1883,8 +1883,10 @@
// to true if either uses_libs or optional_uses_libs is set. Will unconditionally default to true in the future.
Enforce_uses_libs *bool
- // If the library itself is a uses-library (this is needed for non-SDK libraries).
- Is_uses_lib *bool
+ // Optional name of the <uses-library> provided by this module. This is needed for non-SDK
+ // libraries, because SDK ones are automatically picked up by Soong. The <uses-library> name
+ // normally is the same as the module name, but there are exceptions.
+ Provides_uses_lib *string
}
// usesLibrary provides properties and helper functions for AndroidApp and AndroidAppImport to verify that the
diff --git a/java/java.go b/java/java.go
index eb88417..f0d3aaf 100644
--- a/java/java.go
+++ b/java/java.go
@@ -1979,9 +1979,9 @@
// added to the Android manifest.
j.exportedSdkLibs.MaybeAddLibraryPath(ctx, j.OptionalImplicitSdkLibrary(), j.DexJarBuildPath(), j.DexJarInstallPath())
- // If this is a non-SDK uses-library, export itself.
- if proptools.Bool(j.usesLibraryProperties.Is_uses_lib) {
- j.exportedSdkLibs.AddLibraryPath(ctx, ctx.ModuleName(), j.DexJarBuildPath(), j.DexJarInstallPath())
+ // A non-SDK library may provide a <uses-library> (the name may be different from the module name).
+ if lib := proptools.String(j.usesLibraryProperties.Provides_uses_lib); lib != "" {
+ j.exportedSdkLibs.AddLibraryPath(ctx, lib, j.DexJarBuildPath(), j.DexJarInstallPath())
}
j.distFiles = j.GenerateTaggedDistFiles(ctx)