diff options
Diffstat (limited to 'StubLibraries.bp')
| -rw-r--r-- | StubLibraries.bp | 251 |
1 files changed, 61 insertions, 190 deletions
diff --git a/StubLibraries.bp b/StubLibraries.bp index 39aa732d929b..2f3945f88f35 100644 --- a/StubLibraries.bp +++ b/StubLibraries.bp @@ -16,12 +16,12 @@ // // raw source files --(metalava)--> stub source files --(javac)--> stub jar files // -// The metalava conversion is done by droidstub modules *-api-stubs-docs. -// The javac compilation is done by java_library modules android_*_stubs_current. +// - The metalava conversion is done by droidstub modules +// - The javac compilation is done by java_library modules +// // The metalava conversion is also responsible for creating API signature files -// and comparing them against the last API signature in api/*-current.txt files -// and also against the latest frozen API signature in prebuilts/sdk/*/*/api/android.txt -// files. +// and comparing them against the checked in API signature, and also checking compatibility +// with the latest frozen API signature. ///////////////////////////////////////////////////////////////////// // Common metalava configs @@ -41,7 +41,7 @@ packages_to_document = [ ] stubs_defaults { - name: "metalava-base-api-stubs-default", + name: "metalava-non-updatable-api-stubs-default", srcs: [ ":framework-non-updatable-sources", "core/java/**/*.logtags", @@ -51,9 +51,14 @@ stubs_defaults { ":android_icu4j_public_api_files", "**/package.html", ], + sdk_version: "core_platform", + arg_files: ["core/res/AndroidManifest.xml"], // TODO(b/147699819): remove below aidl includes. aidl: { - local_include_dirs: ["telephony/java"], + local_include_dirs: [ + "apex/media/aidl/stable", + "telephony/java", + ], }, // These are libs from framework-internal-utils that are required (i.e. being referenced) // from framework-non-updatable-sources. Add more here when there's a need. @@ -63,6 +68,7 @@ stubs_defaults { "android.hardware.cas-V1.2-java", "android.hardware.health-V1.0-java-constants", "android.hardware.radio-V1.5-java", + "android.hardware.radio-V1.6-java", "android.hardware.thermal-V1.0-java-constants", "android.hardware.thermal-V2.0-java", "android.hardware.tv.input-V1.0-java-constants", @@ -72,7 +78,14 @@ stubs_defaults { "android.hardware.usb.gadget-V1.0-java", "android.hardware.vibrator-V1.3-java", "framework-protos", + // There are a few classes from modules used as type arguments that + // need to be resolved by metalava. For now, we can use a previously + // finalized stub library to resolve them. If a new class gets added, + // this may be need to be revisited to use a manually maintained stub + // library with empty classes in order to resolve those references. + "sdk_system_30_android", ], + high_mem: true, // Lots of sources => high memory use, see b/170701554 installable: false, annotations_enabled: true, previous_api: ":android.api.public.latest", @@ -83,72 +96,18 @@ stubs_defaults { filter_packages: packages_to_document, } -stubs_defaults { - name: "metalava-full-api-stubs-default", - defaults: ["metalava-base-api-stubs-default"], - srcs: [ - ":conscrypt.module.public.api{.public.stubs.source}", - ":framework-updatable-sources", - ], - sdk_version: "core_platform", -} - -stubs_defaults { - name: "metalava-non-updatable-api-stubs-default", - defaults: ["metalava-base-api-stubs-default"], - sdk_version: "core_platform", - // There are a few classes from modules used as type arguments that - // need to be resolved by metalava. For now, we can use a previously - // finalized stub library to resolve them. If a new class gets added, - // this may be need to be revisited to use a manually maintained stub - // library with empty classes in order to resolve those references. - libs: ["sdk_system_30_android"], - aidl: { - local_include_dirs: ["apex/media/aidl/stable"], - }, -} - ///////////////////////////////////////////////////////////////////// -// *-api-stubs-docs modules providing source files for the stub libraries +// These modules provide source files for the stub libraries ///////////////////////////////////////////////////////////////////// -// api-stubs-docs, system-api-stubs-docs, and test-api-stubs-docs have APIs -// from the non-updatable part of the platform as well as from the updatable -// modules -droidstubs { - name: "api-stubs-docs", - defaults: ["metalava-full-api-stubs-default"], - arg_files: [ - "core/res/AndroidManifest.xml", - ], - args: metalava_framework_docs_args, - check_api: { - current: { - api_file: "api/current.txt", - removed_api_file: "api/removed.txt", - }, - last_released: { - api_file: ":android.api.public.latest", - removed_api_file: ":removed.api.public.latest", - baseline_file: ":public-api-incompatibilities-with-last-released", - }, - api_lint: { - enabled: true, - new_since: ":android.api.public.latest", - baseline_file: "api/lint-baseline.txt", - }, - }, -} - droidstubs { name: "api-stubs-docs-non-updatable", defaults: ["metalava-non-updatable-api-stubs-default"], - arg_files: ["core/res/AndroidManifest.xml"], args: metalava_framework_docs_args, check_api: { current: { - api_file: "non-updatable-api/current.txt", - removed_api_file: "non-updatable-api/removed.txt", + api_file: "core/api/current.txt", + removed_api_file: "core/api/removed.txt", }, last_released: { api_file: ":android-non-updatable.api.public.latest", @@ -162,53 +121,31 @@ droidstubs { }, } -priv_apps = " " + - "--show-annotation android.annotation.SystemApi\\(" + +priv_apps = + " --show-annotation android.annotation.SystemApi\\(" + "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" + - "\\) " + "\\)" -module_libs = " " + - " --show-annotation android.annotation.SystemApi\\(" + - "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" + - "\\)" + +priv_apps_in_stubs = " --show-for-stub-purposes-annotation android.annotation.SystemApi\\(" + "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" + - "\\) " + "\\)" -droidstubs { - name: "system-api-stubs-docs", - defaults: ["metalava-full-api-stubs-default"], - arg_files: [ - "core/res/AndroidManifest.xml", - ], - args: metalava_framework_docs_args + priv_apps, - check_api: { - current: { - api_file: "api/system-current.txt", - removed_api_file: "api/system-removed.txt", - }, - last_released: { - api_file: ":android.api.system.latest", - removed_api_file: ":removed.api.system.latest", - baseline_file: ":system-api-incompatibilities-with-last-released" - }, - api_lint: { - enabled: true, - new_since: ":android.api.system.latest", - baseline_file: "api/system-lint-baseline.txt", - }, - }, -} +test = " --show-annotation android.annotation.TestApi" + +module_libs = + " --show-annotation android.annotation.SystemApi\\(" + + "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" + + "\\)" droidstubs { name: "system-api-stubs-docs-non-updatable", defaults: ["metalava-non-updatable-api-stubs-default"], - arg_files: ["core/res/AndroidManifest.xml"], args: metalava_framework_docs_args + priv_apps, check_api: { current: { - api_file: "non-updatable-api/system-current.txt", - removed_api_file: "non-updatable-api/system-removed.txt", + api_file: "core/api/system-current.txt", + removed_api_file: "core/api/system-removed.txt", }, last_released: { api_file: ":android-non-updatable.api.system.latest", @@ -218,30 +155,23 @@ droidstubs { api_lint: { enabled: true, new_since: ":android-non-updatable.api.system.latest", - baseline_file: "non-updatable-api/system-lint-baseline.txt", + baseline_file: "core/api/system-lint-baseline.txt", }, }, } droidstubs { - name: "test-api-stubs-docs", + name: "test-api-stubs-docs-non-updatable", defaults: ["metalava-non-updatable-api-stubs-default"], - arg_files: [ - "core/res/AndroidManifest.xml", - ], - args: metalava_framework_docs_args - + " --show-annotation android.annotation.TestApi" - + " --show-for-stub-purposes-annotation android.annotation.SystemApi\\(" - + "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" - + "\\)", + args: metalava_framework_docs_args + test + priv_apps_in_stubs, check_api: { current: { - api_file: "api/test-current.txt", - removed_api_file: "api/test-removed.txt", + api_file: "core/api/test-current.txt", + removed_api_file: "core/api/test-removed.txt", }, api_lint: { enabled: true, - baseline_file: "api/test-lint-baseline.txt", + baseline_file: "core/api/test-lint-baseline.txt", }, }, dist: { @@ -251,47 +181,14 @@ droidstubs { }, } -///////////////////////////////////////////////////////////////////// -// Following droidstubs modules are for extra APIs for modules, -// namely @SystemApi(client=MODULE_LIBRARIES) APIs. -///////////////////////////////////////////////////////////////////// - -droidstubs { - name: "module-lib-api", - defaults: ["metalava-full-api-stubs-default"], - arg_files: ["core/res/AndroidManifest.xml"], - args: metalava_framework_docs_args + module_libs, - - // Do not generate stubs as they are not needed - generate_stubs: false, - - check_api: { - current: { - api_file: "api/module-lib-current.txt", - removed_api_file: "api/module-lib-removed.txt", - }, - last_released: { - api_file: ":android.api.module-lib.latest", - removed_api_file: ":removed.api.module-lib.latest", - baseline_file: ":module-lib-api-incompatibilities-with-last-released" - }, - api_lint: { - enabled: true, - new_since: ":android.api.module-lib.latest", - baseline_file: "api/module-lib-lint-baseline.txt", - }, - }, -} - droidstubs { name: "module-lib-api-stubs-docs-non-updatable", defaults: ["metalava-non-updatable-api-stubs-default"], - arg_files: ["core/res/AndroidManifest.xml"], - args: metalava_framework_docs_args + priv_apps + module_libs, + args: metalava_framework_docs_args + priv_apps_in_stubs + module_libs, check_api: { current: { - api_file: "non-updatable-api/module-lib-current.txt", - removed_api_file: "non-updatable-api/module-lib-removed.txt", + api_file: "core/api/module-lib-current.txt", + removed_api_file: "core/api/module-lib-removed.txt", }, last_released: { api_file: ":android-non-updatable.api.module-lib.latest", @@ -306,7 +203,7 @@ droidstubs { ///////////////////////////////////////////////////////////////////// // android_*_stubs_current modules are the stubs libraries compiled -// from *-api-stubs-docs +// from stub sources ///////////////////////////////////////////////////////////////////// java_defaults { @@ -338,14 +235,7 @@ java_defaults { } java_library_static { - name: "android_monolith_stubs_current", - srcs: [ ":api-stubs-docs" ], - static_libs: [ "private-stub-annotations-jar" ], - defaults: ["android_defaults_stubs_current"], -} - -java_library_static { - name: "android_merged_stubs_current", + name: "android_stubs_current", srcs: [ ":api-stubs-docs-non-updatable" ], static_libs: [ "conscrypt.module.public.api.stubs", @@ -362,15 +252,19 @@ java_library_static { } java_library_static { - name: "android_stubs_current", - static_libs: ["android_merged_stubs_current"], - defaults: ["android_defaults_stubs_current"], -} - -java_library_static { - name: "android_system_monolith_stubs_current", - srcs: [ ":system-api-stubs-docs" ], - static_libs: [ "private-stub-annotations-jar" ], + name: "android_system_stubs_current", + srcs: [ ":system-api-stubs-docs-non-updatable" ], + static_libs: [ + "conscrypt.module.public.api.stubs", + "framework-media.stubs.system", + "framework-mediaprovider.stubs.system", + "framework-permission.stubs.system", + "framework-sdkextensions.stubs.system", + "framework-statsd.stubs.system", + "framework-tethering.stubs.system", + "framework-wifi.stubs.system", + "private-stub-annotations-jar", + ], defaults: [ "android_defaults_stubs_current", "android_stubs_dists_default", @@ -389,31 +283,8 @@ java_library_static { } java_library_static { - name: "android_system_merged_stubs_current", - srcs: [ ":system-api-stubs-docs-non-updatable" ], - static_libs: [ - "conscrypt.module.public.api.stubs", - "framework-media.stubs.system", - "framework-mediaprovider.stubs.system", - "framework-permission.stubs.system", - "framework-sdkextensions.stubs.system", - "framework-statsd.stubs.system", - "framework-tethering.stubs.system", - "framework-wifi.stubs.system", - "private-stub-annotations-jar", - ], - defaults: ["android_defaults_stubs_current"], -} - -java_library_static { - name: "android_system_stubs_current", - static_libs: ["android_system_merged_stubs_current"], - defaults: ["android_defaults_stubs_current"], -} - -java_library_static { name: "android_test_stubs_current", - srcs: [ ":test-api-stubs-docs" ], + srcs: [ ":test-api-stubs-docs-non-updatable" ], static_libs: [ // Modules do not have test APIs, but we want to include their SystemApis, like we include // the SystemApi of framework-non-updatable-sources. |