summaryrefslogtreecommitdiff
path: root/StubLibraries.bp
diff options
context:
space:
mode:
Diffstat (limited to 'StubLibraries.bp')
-rw-r--r--StubLibraries.bp251
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.