Allow non-SDK Java libraries to masquerade as <uses-library>.

Extend usesLibraryProperties with a boolean is_uses_lib property and
move these properties from java.AndroidApp to java.Module to allow
java.Library modules set the new propery and be recognized as
<uses-library> by Soong.

Bug: 132357300
Test: lunch cf_x86_phone-userdebug && m
Change-Id: I01cd5e0da3dd543c1c0597249d37d0914b213ca7
This commit is contained in:
Ulya Trafimovich
2020-09-01 17:33:48 +01:00
parent 588aae727b
commit 21a7375205
3 changed files with 16 additions and 11 deletions

View File

@@ -437,6 +437,7 @@ type Module struct {
hiddenAPI
dexer
dexpreopter
usesLibrary
linter
// list of the xref extraction files
@@ -452,6 +453,7 @@ func (j *Module) addHostProperties() {
j.AddProperties(
&j.properties,
&j.protoProperties,
&j.usesLibraryProperties,
)
}
@@ -1972,6 +1974,11 @@ func (j *Library) GenerateAndroidBuildActions(ctx android.ModuleContext) {
// 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())
}
j.distFiles = j.GenerateTaggedDistFiles(ctx)
}