Merge "Add framework-virtualization to combined_apis" am: 8f8b0cf013

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2303037

Change-Id: I592f42c54a5f54529ae1e3df6d4831c9a3c2effe
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Nikita Ioffe
2022-11-17 08:44:28 +00:00
committed by Automerger Merge Worker
2 changed files with 34 additions and 6 deletions

View File

@@ -109,6 +109,7 @@ combined_apis {
"framework-sdksandbox", "framework-sdksandbox",
"framework-tethering", "framework-tethering",
"framework-uwb", "framework-uwb",
"framework-virtualization",
"framework-wifi", "framework-wifi",
"i18n.module.public.api", "i18n.module.public.api",
], ],

View File

@@ -27,8 +27,16 @@ import (
const art = "art.module.public.api" const art = "art.module.public.api"
const conscrypt = "conscrypt.module.public.api" const conscrypt = "conscrypt.module.public.api"
const i18n = "i18n.module.public.api" const i18n = "i18n.module.public.api"
const virtualization = "framework-virtualization"
var core_libraries_modules = []string{art, conscrypt, i18n} var core_libraries_modules = []string{art, conscrypt, i18n}
// List of modules that are not yet updatable, and hence they can still compile
// against hidden APIs. These modules are filtered out when building the
// updatable-framework-module-impl (because updatable-framework-module-impl is
// built against module_current SDK). Instead they are directly statically
// linked into the all-framework-module-lib, which is building against hidden
// APIs.
var non_updatable_modules = []string{virtualization}
// The intention behind this soong plugin is to generate a number of "merged" // 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 // API-related modules that would otherwise require a large amount of very
@@ -249,12 +257,31 @@ func createMergedSystemStubs(ctx android.LoadHookContext, modules []string) {
func createMergedFrameworkImpl(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. // This module is for the "framework-all" module, which should not include the core libraries.
modules = removeAll(modules, core_libraries_modules) modules = removeAll(modules, core_libraries_modules)
props := libraryProps{} // Remove the modules that belong to non-updatable APEXes since those are allowed to compile
props.Name = proptools.StringPtr("all-framework-module-impl") // against unstable APIs.
props.Static_libs = transformArray(modules, "", ".impl") modules = removeAll(modules, non_updatable_modules)
props.Sdk_version = proptools.StringPtr("module_current") // First create updatable-framework-module-impl, which contains all updatable modules.
props.Visibility = []string{"//frameworks/base"} // This module compiles against module_lib SDK.
ctx.CreateModule(java.LibraryFactory, &props) {
props := libraryProps{}
props.Name = proptools.StringPtr("updatable-framework-module-impl")
props.Static_libs = transformArray(modules, "", ".impl")
props.Sdk_version = proptools.StringPtr("module_current")
props.Visibility = []string{"//frameworks/base"}
ctx.CreateModule(java.LibraryFactory, &props)
}
// Now create all-framework-module-impl, which contains updatable-framework-module-impl
// and all non-updatable modules. This module compiles against hidden APIs.
{
props := libraryProps{}
props.Name = proptools.StringPtr("all-framework-module-impl")
props.Static_libs = transformArray(non_updatable_modules, "", ".impl")
props.Static_libs = append(props.Static_libs, "updatable-framework-module-impl")
props.Sdk_version = proptools.StringPtr("core_platform")
props.Visibility = []string{"//frameworks/base"}
ctx.CreateModule(java.LibraryFactory, &props)
}
} }
func createMergedFrameworkModuleLibStubs(ctx android.LoadHookContext, modules []string) { func createMergedFrameworkModuleLibStubs(ctx android.LoadHookContext, modules []string) {