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

Commit e1abb628 authored by Jihoon Kang's avatar Jihoon Kang Committed by Automerger Merge Worker
Browse files

Merge "Define exportable full api surface stubs" into main am: 583bc717 am:...

Merge "Define exportable full api surface stubs" into main am: 583bc717 am: c9b8fd51 am: 482ed8e5

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



Change-Id: Ifeadec8a3ace64380042449c61f60efc66aae515
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents d8b2ac79 482ed8e5
Loading
Loading
Loading
Loading
+150 −6
Original line number Diff line number Diff line
@@ -239,6 +239,10 @@ java_defaults {
    name: "android-non-updatable_from_source_defaults",
    libs: ["stub-annotations"],
    static_libs: ["framework-res-package-jar"], // Export package of framework-res
}

java_defaults {
    name: "android-non-updatable_exportable_from_source_defaults",
    dist: {
        targets: ["sdk"],
        tag: ".jar",
@@ -264,6 +268,14 @@ java_library {
    },
}

java_library {
    name: "android-non-updatable.stubs.exportable",
    defaults: ["android-non-updatable_defaults"],
    static_libs: [
        "android-non-updatable.stubs.exportable.from-source",
    ],
}

java_library {
    name: "android-non-updatable.stubs.system",
    defaults: ["android-non-updatable_defaults"],
@@ -282,6 +294,14 @@ java_library {
    },
}

java_library {
    name: "android-non-updatable.stubs.exportable.system",
    defaults: ["android-non-updatable_defaults"],
    static_libs: [
        "android-non-updatable.stubs.exportable.system.from-source",
    ],
}

java_library {
    name: "android-non-updatable.stubs.module_lib",
    defaults: ["android-non-updatable_defaults"],
@@ -300,6 +320,14 @@ java_library {
    },
}

java_library {
    name: "android-non-updatable.stubs.exportable.module_lib",
    defaults: ["android-non-updatable_defaults"],
    static_libs: [
        "android-non-updatable.stubs.exportable.module_lib.from-source",
    ],
}

java_library {
    name: "android-non-updatable.stubs.test",
    defaults: ["android-non-updatable_defaults"],
@@ -318,6 +346,14 @@ java_library {
    },
}

java_library {
    name: "android-non-updatable.stubs.exportable.test",
    defaults: ["android-non-updatable_defaults"],
    static_libs: [
        "android-non-updatable.stubs.exportable.test.from-source",
    ],
}

java_library {
    name: "android-non-updatable.stubs.from-source",
    defaults: [
@@ -326,6 +362,17 @@ java_library {
    ],
    srcs: [":api-stubs-docs-non-updatable"],
    libs: ["all-modules-public-stubs"],
}

java_library {
    name: "android-non-updatable.stubs.exportable.from-source",
    defaults: [
        "android-non-updatable_defaults",
        "android-non-updatable_from_source_defaults",
        "android-non-updatable_exportable_from_source_defaults",
    ],
    srcs: [":api-stubs-docs-non-updatable{.exportable}"],
    libs: ["all-modules-public-stubs"],
    dist: {
        dir: "apistubs/android/public",
    },
@@ -339,6 +386,17 @@ java_library {
    ],
    srcs: [":system-api-stubs-docs-non-updatable"],
    libs: ["all-modules-system-stubs"],
}

java_library {
    name: "android-non-updatable.stubs.exportable.system.from-source",
    defaults: [
        "android-non-updatable_defaults",
        "android-non-updatable_from_source_defaults",
        "android-non-updatable_exportable_from_source_defaults",
    ],
    srcs: [":system-api-stubs-docs-non-updatable{.exportable}"],
    libs: ["all-modules-system-stubs"],
    dist: {
        dir: "apistubs/android/system",
    },
@@ -352,6 +410,17 @@ java_library {
    ],
    srcs: [":module-lib-api-stubs-docs-non-updatable"],
    libs: non_updatable_api_deps_on_modules,
}

java_library {
    name: "android-non-updatable.stubs.exportable.module_lib.from-source",
    defaults: [
        "android-non-updatable_defaults",
        "android-non-updatable_from_source_defaults",
        "android-non-updatable_exportable_from_source_defaults",
    ],
    srcs: [":module-lib-api-stubs-docs-non-updatable{.exportable}"],
    libs: non_updatable_api_deps_on_modules,
    dist: {
        dir: "apistubs/android/module-lib",
    },
@@ -365,6 +434,17 @@ java_library {
    ],
    srcs: [":test-api-stubs-docs-non-updatable"],
    libs: ["all-modules-system-stubs"],
}

java_library {
    name: "android-non-updatable.stubs.exportable.test.from-source",
    defaults: [
        "android-non-updatable_defaults",
        "android-non-updatable_from_source_defaults",
        "android-non-updatable_exportable_from_source_defaults",
    ],
    srcs: [":test-api-stubs-docs-non-updatable{.exportable}"],
    libs: ["all-modules-system-stubs"],
    dist: {
        dir: "apistubs/android/test",
    },
@@ -461,6 +541,16 @@ java_library {
    defaults: ["android.jar_defaults"],
}

java_library {
    name: "android_stubs_current_exportable.from-source",
    static_libs: [
        "all-modules-public-stubs-exportable",
        "android-non-updatable.stubs.exportable",
        "private-stub-annotations-jar",
    ],
    defaults: ["android.jar_defaults"],
}

java_library {
    name: "android_system_stubs_current.from-source",
    static_libs: [
@@ -468,6 +558,19 @@ java_library {
        "android-non-updatable.stubs.system",
        "private-stub-annotations-jar",
    ],
    defaults: [
        "android.jar_defaults",
    ],
    visibility: ["//frameworks/base/services"],
}

java_library {
    name: "android_system_stubs_current_exportable.from-source",
    static_libs: [
        "all-modules-system-stubs-exportable",
        "android-non-updatable.stubs.exportable.system",
        "private-stub-annotations-jar",
    ],
    defaults: [
        "android.jar_defaults",
        "android_stubs_dists_default",
@@ -496,6 +599,23 @@ java_library {
        "android-non-updatable.stubs.test",
        "private-stub-annotations-jar",
    ],
    defaults: [
        "android.jar_defaults",
    ],
    visibility: ["//frameworks/base/services"],
}

java_library {
    name: "android_test_stubs_current_exportable.from-source",
    static_libs: [
        // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
        // include the SystemApi of framework-non-updatable-sources.
        "all-updatable-modules-system-stubs-exportable",
        // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
        "all-non-updatable-modules-test-stubs-exportable",
        "android-non-updatable.stubs.exportable.test",
        "private-stub-annotations-jar",
    ],
    defaults: [
        "android.jar_defaults",
        "android_stubs_dists_default",
@@ -505,6 +625,7 @@ java_library {
    },
}

// This module does not need to be copied to dist
java_library {
    name: "android_test_frameworks_core_stubs_current.from-source",
    static_libs: [
@@ -513,24 +634,34 @@ java_library {
    ],
    defaults: [
        "android.jar_defaults",
        "android_stubs_dists_default",
    ],
    dist: {
        dir: "apistubs/android/test-core",
    },
    visibility: ["//frameworks/base/services"],
}

java_library {
    name: "android_module_lib_stubs_current.from-source",
    defaults: [
        "android.jar_defaults",
        "android_stubs_dists_default",
    ],
    static_libs: [
        "android-non-updatable.stubs.module_lib",
        "art.module.public.api.stubs.module_lib",
        "i18n.module.public.api.stubs",
    ],
    visibility: ["//frameworks/base/services"],
}

java_library {
    name: "android_module_lib_stubs_current_exportable.from-source",
    defaults: [
        "android.jar_defaults",
        "android_stubs_dists_default",
    ],
    static_libs: [
        "android-non-updatable.stubs.exportable.module_lib",
        "art.module.public.api.stubs.exportable.module_lib",
        "i18n.module.public.api.stubs.exportable",
    ],
    dist: {
        dir: "apistubs/android/module-lib",
    },
@@ -540,13 +671,26 @@ java_library {
    name: "android_system_server_stubs_current.from-source",
    defaults: [
        "android.jar_defaults",
        "android_stubs_dists_default",
    ],
    srcs: [":services-non-updatable-stubs"],
    installable: false,
    static_libs: [
        "android_module_lib_stubs_current.from-source",
    ],
    visibility: ["//frameworks/base/services"],
}

java_library {
    name: "android_system_server_stubs_current_exportable.from-source",
    defaults: [
        "android.jar_defaults",
        "android_stubs_dists_default",
    ],
    srcs: [":services-non-updatable-stubs{.exportable}"],
    installable: false,
    static_libs: [
        "android_module_lib_stubs_current_exportable.from-source",
    ],
    dist: {
        dir: "apistubs/android/system-server",
    },
+83 −0
Original line number Diff line number Diff line
@@ -204,6 +204,15 @@ func createMergedPublicStubs(ctx android.LoadHookContext, modules []string) {
	ctx.CreateModule(java.LibraryFactory, &props)
}

func createMergedPublicExportableStubs(ctx android.LoadHookContext, modules []string) {
	props := libraryProps{}
	props.Name = proptools.StringPtr("all-modules-public-stubs-exportable")
	props.Static_libs = transformArray(modules, "", ".stubs.exportable")
	props.Sdk_version = proptools.StringPtr("module_current")
	props.Visibility = []string{"//frameworks/base"}
	ctx.CreateModule(java.LibraryFactory, &props)
}

func createMergedSystemStubs(ctx android.LoadHookContext, modules []string) {
	// First create the all-updatable-modules-system-stubs
	{
@@ -228,6 +237,30 @@ func createMergedSystemStubs(ctx android.LoadHookContext, modules []string) {
	}
}

func createMergedSystemExportableStubs(ctx android.LoadHookContext, modules []string) {
	// First create the all-updatable-modules-system-stubs
	{
		updatable_modules := removeAll(modules, non_updatable_modules)
		props := libraryProps{}
		props.Name = proptools.StringPtr("all-updatable-modules-system-stubs-exportable")
		props.Static_libs = transformArray(updatable_modules, "", ".stubs.exportable.system")
		props.Sdk_version = proptools.StringPtr("module_current")
		props.Visibility = []string{"//frameworks/base"}
		ctx.CreateModule(java.LibraryFactory, &props)
	}
	// Now merge all-updatable-modules-system-stubs and stubs from non-updatable modules
	// into all-modules-system-stubs.
	{
		props := libraryProps{}
		props.Name = proptools.StringPtr("all-modules-system-stubs-exportable")
		props.Static_libs = transformArray(non_updatable_modules, "", ".stubs.exportable.system")
		props.Static_libs = append(props.Static_libs, "all-updatable-modules-system-stubs-exportable")
		props.Sdk_version = proptools.StringPtr("module_current")
		props.Visibility = []string{"//frameworks/base"}
		ctx.CreateModule(java.LibraryFactory, &props)
	}
}

func createMergedTestStubsForNonUpdatableModules(ctx android.LoadHookContext) {
	props := libraryProps{}
	props.Name = proptools.StringPtr("all-non-updatable-modules-test-stubs")
@@ -237,6 +270,15 @@ func createMergedTestStubsForNonUpdatableModules(ctx android.LoadHookContext) {
	ctx.CreateModule(java.LibraryFactory, &props)
}

func createMergedTestExportableStubsForNonUpdatableModules(ctx android.LoadHookContext) {
	props := libraryProps{}
	props.Name = proptools.StringPtr("all-non-updatable-modules-test-stubs-exportable")
	props.Static_libs = transformArray(non_updatable_modules, "", ".stubs.exportable.test")
	props.Sdk_version = proptools.StringPtr("module_current")
	props.Visibility = []string{"//frameworks/base"}
	ctx.CreateModule(java.LibraryFactory, &props)
}

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)
@@ -267,6 +309,19 @@ func createMergedFrameworkImpl(ctx android.LoadHookContext, modules []string) {
	}
}

func createMergedFrameworkModuleLibExportableStubs(ctx android.LoadHookContext, modules []string) {
	// The user of this module compiles against the "core" SDK and against non-updatable modules,
	// so remove to avoid dupes.
	modules = removeAll(modules, core_libraries_modules)
	modules = removeAll(modules, non_updatable_modules)
	props := libraryProps{}
	props.Name = proptools.StringPtr("framework-updatable-stubs-module_libs_api-exportable")
	props.Static_libs = transformArray(modules, "", ".stubs.exportable.module_lib")
	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 and against non-updatable modules,
	// so remove to avoid dupes.
@@ -382,6 +437,27 @@ func createFullApiLibraries(ctx android.LoadHookContext) {
	}
}

func createFullExportableApiLibraries(ctx android.LoadHookContext) {
	javaLibraryNames := []string{
		"android_stubs_current_exportable",
		"android_system_stubs_current_exportable",
		"android_test_stubs_current_exportable",
		"android_module_lib_stubs_current_exportable",
		"android_system_server_stubs_current_exportable",
	}

	for _, libraryName := range javaLibraryNames {
		props := libraryProps{}
		props.Name = proptools.StringPtr(libraryName)
		staticLib := libraryName + ".from-source"
		props.Static_libs = []string{staticLib}
		props.Defaults = []string{"android.jar_defaults"}
		props.Visibility = []string{"//visibility:public"}

		ctx.CreateModule(java.LibraryFactory, &props)
	}
}

func (a *CombinedApis) createInternalModules(ctx android.LoadHookContext) {
	bootclasspath := a.properties.Bootclasspath
	system_server_classpath := a.properties.System_server_classpath
@@ -397,6 +473,11 @@ func (a *CombinedApis) createInternalModules(ctx android.LoadHookContext) {
	createMergedFrameworkModuleLibStubs(ctx, bootclasspath)
	createMergedFrameworkImpl(ctx, bootclasspath)

	createMergedPublicExportableStubs(ctx, bootclasspath)
	createMergedSystemExportableStubs(ctx, bootclasspath)
	createMergedTestExportableStubsForNonUpdatableModules(ctx)
	createMergedFrameworkModuleLibExportableStubs(ctx, bootclasspath)

	createMergedAnnotationsFilegroups(ctx, bootclasspath, system_server_classpath)

	createPublicStubsSourceFilegroup(ctx, bootclasspath)
@@ -404,6 +485,8 @@ func (a *CombinedApis) createInternalModules(ctx android.LoadHookContext) {
	createApiContributionDefaults(ctx, bootclasspath)

	createFullApiLibraries(ctx)

	createFullExportableApiLibraries(ctx)
}

func combinedApisModuleFactory() android.Module {