Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 95e89a8c authored by Anton Hansson's avatar Anton Hansson
Browse files

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
parent c9a39b30
Loading
Loading
Loading
Loading
+1 −14
Original line number Diff line number Diff line
@@ -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",
+1 −1
Original line number Diff line number Diff line
@@ -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
    ],
}

+24 −3
Original line number Diff line number Diff line
@@ -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)