Skip to content
Snippets Groups Projects
Commit 0834ea7a authored by Paul Duffin's avatar Paul Duffin
Browse files

Extract api_versions_defaults from api_versions_* modules

Splits the `api_versions_*` modules into two types:
* Those that include the whole API surface including updatable modules
  and SDK extensions.
* Those that do not include updatables modules or SDK extensions.

Bug: 336993217
Test: m nothing and TH
Change-Id: Ic3d95832a30a7a5e7c4a09febd818b1aebbf17d0
parent 65f47a30
No related branches found
No related tags found
No related merge requests found
......@@ -1135,31 +1135,47 @@ java_library {
],
}
droidstubs {
name: "api_versions_public",
srcs: [":android_stubs_current_with_test_libs{.jar}"],
// Defaults for `droidstubs` modules that generate `api-versions.xml` files for
// the various API surfaces.
stubs_defaults {
name: "api_versions_base_defaults",
defaults_visibility: ["//visibility:private"],
generate_stubs: false,
api_levels_annotations_enabled: true,
api_levels_annotations_dirs: [
"sdk-dir",
"api-versions-jars-dir",
],
api_levels_sdk_type: "public",
}
// Defaults for `droidstubs` modules that generate complete `api-versions.xml`
// files, i.e. include SDK extensions.
stubs_defaults {
name: "api_versions_complete_defaults",
defaults_visibility: ["//visibility:private"],
defaults: ["api_versions_base_defaults"],
extensions_info_file: ":sdk-extensions-info",
}
// Produces an `api-versions.xml` file that includes up-to-date information
// about all the public APIs, both updatable and non-updatable and historic
// information about all previous dessert and SDK extension releases.
droidstubs {
name: "api_versions_public",
defaults: ["api_versions_complete_defaults"],
srcs: [":android_stubs_current_with_test_libs{.jar}"],
api_levels_sdk_type: "public",
visibility: ["//frameworks/base"],
}
// Produces an `api-versions.xml` file that includes up-to-date information
// about all the system APIs, both updatable and non-updatable and historic
// information about all previous dessert and SDK extension releases.
droidstubs {
name: "api_versions_system",
defaults: ["api_versions_complete_defaults"],
srcs: [":android_system_stubs_current_with_test_libs{.jar}"],
generate_stubs: false,
api_levels_annotations_enabled: true,
api_levels_annotations_dirs: [
"sdk-dir",
"api-versions-jars-dir",
],
api_levels_sdk_type: "system",
extensions_info_file: ":sdk-extensions-info",
dists: [
// Make the api-versions.xml file for the system API available in the
// sdk build target.
......@@ -1171,42 +1187,43 @@ droidstubs {
],
}
// This module can be built with:
// m out/soong/.intermediates/frameworks/base/api/api_versions_module_lib/android_common/metalava/api-versions.xml
droidstubs {
name: "api_versions_module_lib",
srcs: [":android_module_stubs_current_with_test_libs{.jar}"],
generate_stubs: false,
api_levels_annotations_enabled: true,
// Defaults for `droidstubs` modules that generate `api-versions.xml` files that
// only include non-updatable code, i.e. for platform API only, not SDK
// extensions.
stubs_defaults {
name: "api_versions_non_updatable_defaults",
defaults_visibility: ["//visibility:private"],
defaults: ["api_versions_base_defaults"],
// this only has the non-updatable portions of the module lib sdk,
// which can reference classes from updatable apexes, so remove references to them
// from this api_versions file.
flags: ["--remove-missing-class-references-in-api-levels"],
api_levels_annotations_dirs: [
"sdk-dir",
"api-versions-jars-dir",
],
api_levels_sdk_type: "module-lib",
// extensions_info_file is purposefully omitted, because this module should just be
// the non-updatable portions of the sdk, and extension sdks are updatable.
}
// Produces an `api-versions.xml` file that includes up-to-date information
// about only the non-updatable module-lib APIs and historic information about
// all previous dessert and SDK extension releases. That historic information
// may include information about APIs that were previously not-updatable which
// have since become updatable.
droidstubs {
name: "api_versions_module_lib",
defaults: ["api_versions_non_updatable_defaults"],
srcs: [":android_module_stubs_current_with_test_libs{.jar}"],
api_levels_sdk_type: "module-lib",
}
// Produces an `api-versions.xml` file that includes up-to-date information
// about only the non-updatable system-server APIs and historic information
// about all previous dessert and SDK extension releases. That historic
// information may include information about APIs that were previously
// not-updatable which have since become updatable.
droidstubs {
name: "api_versions_system_server",
defaults: ["api_versions_non_updatable_defaults"],
srcs: [":android_system_server_stubs_current_with_test_libs{.jar}"],
generate_stubs: false,
api_levels_annotations_enabled: true,
// this only has the non-updatable portions of the system server sdk,
// which can reference classes from updatable apexes, so remove references to them
// from this api_versions file.
flags: ["--remove-missing-class-references-in-api-levels"],
api_levels_annotations_dirs: [
"sdk-dir",
"api-versions-jars-dir",
],
api_levels_sdk_type: "system-server",
// extensions_info_file is purposefully omitted, because this module should just be
// the non-updatable portions of the sdk, and extension sdks are updatable.
}
/////////////////////////////////////////////////////////////////////
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment