diff options
author | 2023-01-17 20:40:22 +0000 | |
---|---|---|
committer | 2023-03-28 21:53:45 +0000 | |
commit | 1bff0349d4954284e0e6fbcab2ace95e4be15766 (patch) | |
tree | 4fd0efd0fac0ee6f3ddeabe67add19661bded145 /java/java.go | |
parent | a22c4b6a796477efa9802726da5073ae7e2ceef2 (diff) |
Modify Soong to utilize from-text android.jar in build
Context
- from-text android.jar files are built using Metalava, and these can be
utilized in `decodeSdkDep` so that any modules that depends on APIs
can be compiled using from-text android.jars
- This change removes dependency on source java files when compiling
stub android.jar files
Implementation
- Modify java_api_library module to create system modules using the
generated android.jar
- Replace modules in decodeSdkDep to link against java_api_library
modules
- Add --build-from-text-stub flag to hide the feature behind a flag
Test: m --build-from-text-stub
Bug: 271154441
Change-Id: I104df595edc65c0006820d5ae5b15f1fb167e190
Diffstat (limited to 'java/java.go')
-rw-r--r-- | java/java.go | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/java/java.go b/java/java.go index 370781599..91193ccc1 100644 --- a/java/java.go +++ b/java/java.go @@ -1692,6 +1692,12 @@ func metalavaStubCmd(ctx android.ModuleContext, rule *android.RuleBuilder, Flag("--color"). Flag("--quiet"). Flag("--format=v2"). + Flag("--include-annotations"). + // The flag makes nullability issues as warnings rather than errors by replacing + // @Nullable/@NonNull in the listed packages APIs with @RecentlyNullable/@RecentlyNonNull, + // and these packages are meant to have everything annotated + // @RecentlyNullable/@RecentlyNonNull. + FlagWithArg("--force-convert-to-warning-nullability-annotations ", "+*:-android.*:+android.icu.*:-dalvik.*"). FlagWithArg("--repeat-errors-max ", "10"). FlagWithArg("--hide ", "UnresolvedImport"). FlagWithArg("--hide ", "InvalidNullabilityOverride"). @@ -1700,6 +1706,14 @@ func metalavaStubCmd(ctx android.ModuleContext, rule *android.RuleBuilder, return cmd } +func (al *ApiLibrary) HeaderJars() android.Paths { + return android.Paths{al.stubsJar} +} + +func (al *ApiLibrary) OutputDirAndDeps() (android.Path, android.Paths) { + return nil, nil +} + func (al *ApiLibrary) stubsFlags(ctx android.ModuleContext, cmd *android.RuleBuilderCommand, stubsDir android.OptionalPath) { if stubsDir.Valid() { cmd.FlagWithArg("--stubs ", stubsDir.String()) @@ -1797,7 +1811,10 @@ func (al *ApiLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) { ctx.Phony(ctx.ModuleName(), al.stubsJar) ctx.SetProvider(JavaInfoProvider, JavaInfo{ - HeaderJars: android.PathsIfNonNil(al.stubsJar), + HeaderJars: android.PathsIfNonNil(al.stubsJar), + ImplementationAndResourcesJars: android.PathsIfNonNil(al.stubsJar), + ImplementationJars: android.PathsIfNonNil(al.stubsJar), + AidlIncludeDirs: android.Paths{}, }) } |