From 95e89a8cb9a615e7232a8f82ff7be2ccd7282dd4 Mon Sep 17 00:00:00 2001 From: Anton Hansson Date: Fri, 28 Jan 2022 11:31:50 +0000 Subject: [PATCH] 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 --- Android.bp | 15 +-------------- apex/media/framework/Android.bp | 2 +- api/api.go | 27 ++++++++++++++++++++++++--- 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/Android.bp b/Android.bp index 60ec7e2709a7..204a6cec8138 100644 --- a/Android.bp +++ b/Android.bp @@ -140,21 +140,8 @@ java_library { name: "framework-all", installable: false, static_libs: [ - "android.net.ipsec.ike.impl", + "all-framework-module-impl", "framework-minus-apex", - "framework-appsearch.impl", - "framework-connectivity.impl", - "framework-connectivity-tiramisu.impl", - "framework-graphics.impl", - "framework-mediaprovider.impl", - "framework-permission.impl", - "framework-permission-s.impl", - "framework-scheduling.impl", - "framework-sdkextensions.impl", - "framework-statsd.impl", - "framework-tethering.impl", - "framework-wifi.impl", - "updatable-media", ], apex_available: ["//apex_available:platform"], sdk_version: "core_platform", diff --git a/apex/media/framework/Android.bp b/apex/media/framework/Android.bp index d963e68d80ec..6195f257ecd9 100644 --- a/apex/media/framework/Android.bp +++ b/apex/media/framework/Android.bp @@ -63,8 +63,8 @@ java_library { min_sdk_version: "29", visibility: [ "//frameworks/av/apex:__subpackages__", - "//frameworks/base", // For framework-all "//frameworks/base/apex/media/service", + "//frameworks/base/api", // For framework-all ], } diff --git a/api/api.go b/api/api.go index 17649e80e81a..5e5f60ee993f 100644 --- a/api/api.go +++ b/api/api.go @@ -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)