Auto-generate list of module impl jars

Eliminate another duplicated list of all modules. This one has a couple
of workarounds due to different naming of impl libs, and bluetooth not
being ready.

Bug: 169103987
Test: m framework-all and diff intermediates (no diffs)
Merged-In: Ia8627c6e3977cd271e389ec482388ff73661881d
Change-Id: Ia8627c6e3977cd271e389ec482388ff73661881d
This commit is contained in:
Anton Hansson
2022-01-28 11:31:50 +00:00
parent c9a39b3066
commit 95e89a8cb9
3 changed files with 26 additions and 18 deletions

View File

@@ -27,6 +27,7 @@ import (
const art = "art.module.public.api"
const conscrypt = "conscrypt.module.public.api"
const i18n = "i18n.module.public.api"
var core_libraries_modules = []string{art, conscrypt, i18n}
// The intention behind this soong plugin is to generate a number of "merged"
// API-related modules that would otherwise require a large amount of very
@@ -199,9 +200,28 @@ func createMergedSystemStubs(ctx android.LoadHookContext, modules []string) {
ctx.CreateModule(java.LibraryFactory, &props)
}
func createMergedModuleLibStubs(ctx android.LoadHookContext, modules []string) {
func createMergedFrameworkImpl(ctx android.LoadHookContext, modules []string) {
// This module is for the "framework-all" module, which should not include the core libraries.
modules = removeAll(modules, core_libraries_modules)
// TODO(b/214988855): remove the line below when framework-bluetooth has an impl jar.
modules = remove(modules, "framework-bluetooth")
props := libraryProps{}
props.Name = proptools.StringPtr("all-framework-module-impl")
props.Static_libs = transformArray(modules, "", ".impl")
// Media module's impl jar is called "updatable-media"
for i, v := range props.Static_libs {
if v == "framework-media.impl" {
props.Static_libs[i] = "updatable-media"
}
}
props.Sdk_version = proptools.StringPtr("module_current")
props.Visibility = []string{"//frameworks/base"}
ctx.CreateModule(java.LibraryFactory, &props)
}
func createMergedFrameworkModuleLibStubs(ctx android.LoadHookContext, modules []string) {
// The user of this module compiles against the "core" SDK, so remove core libraries to avoid dupes.
modules = removeAll(modules, []string{art, conscrypt, i18n})
modules = removeAll(modules, core_libraries_modules)
props := libraryProps{}
props.Name = proptools.StringPtr("framework-updatable-stubs-module_libs_api")
props.Static_libs = transformArray(modules, "", ".stubs.module_lib")
@@ -269,7 +289,8 @@ func (a *CombinedApis) createInternalModules(ctx android.LoadHookContext) {
createMergedPublicStubs(ctx, bootclasspath)
createMergedSystemStubs(ctx, bootclasspath)
createMergedModuleLibStubs(ctx, bootclasspath)
createMergedFrameworkModuleLibStubs(ctx, bootclasspath)
createMergedFrameworkImpl(ctx, bootclasspath)
createMergedAnnotations(ctx, bootclasspath)