Cleanup in StubLibraries.bp

- Merge the "full" defaults into the "base" defaults (base wasn't used)
- Reword some comments
- Fix double mention of priv_apps @SystemApi annotation in a droidstub

Test: m checkapi
Change-Id: Ide93b0f6076fec733f5a01b7fccbf280d5a8d0f6
(cherry picked from commit 1c58ffce6c16c4854cbc6f851b15c8d7e66fefea)
This commit is contained in:
Anton Hansson 2020-11-13 11:44:32 +00:00
parent 660f7cd8f1
commit 2feb3f1369

View File

@ -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,11 +51,14 @@ stubs_defaults {
":android_icu4j_public_api_files",
"**/package.html",
],
sdk_version: "core_platform",
arg_files: ["core/res/AndroidManifest.xml"],
// TODO(b/147699819, b/169090544): remove below aidl includes.
aidl: {
local_include_dirs: [
"telephony/java",
"apex/media/aidl/stable",
"media/aidl",
"telephony/java",
],
include_dirs: ["frameworks/av/aidl"],
},
@ -77,6 +80,12 @@ 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,
@ -89,31 +98,6 @@ 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"],
},
}
/////////////////////////////////////////////////////////////////////
// These modules provide source files for the stub libraries
/////////////////////////////////////////////////////////////////////
@ -121,7 +105,6 @@ stubs_defaults {
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: {
@ -140,23 +123,26 @@ droidstubs {
},
}
priv_apps = " " +
"--show-annotation android.annotation.SystemApi\\(" +
"client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
"\\) "
module_libs = " " +
priv_apps =
" --show-annotation android.annotation.SystemApi\\(" +
"client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" +
"\\)" +
"client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
"\\)"
priv_apps_in_stubs =
" --show-for-stub-purposes-annotation android.annotation.SystemApi\\(" +
"client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
"\\) "
"\\)"
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: {
@ -179,14 +165,7 @@ droidstubs {
droidstubs {
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: "core/api/test-current.txt",
@ -204,16 +183,10 @@ droidstubs {
},
}
/////////////////////////////////////////////////////////////////////
// Following droidstub module for extra APIs for modules,
// namely @SystemApi(client=MODULE_LIBRARIES) APIs.
/////////////////////////////////////////////////////////////////////
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: "core/api/module-lib-current.txt",
@ -232,7 +205,7 @@ droidstubs {
/////////////////////////////////////////////////////////////////////
// android_*_stubs_current modules are the stubs libraries compiled
// from *-api-stubs-docs
// from stub sources
/////////////////////////////////////////////////////////////////////
java_defaults {