diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2024-05-02 22:04:30 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-05-02 22:04:30 +0000 |
commit | e343d44ca805f9713949ed51f2edfd134ac9a9cc (patch) | |
tree | f20c7934ee55de80667066e093e0d5be9ad62d4c | |
parent | 29bf0cb698ed2e221ab570c91831ec84b5c0a565 (diff) | |
parent | 0834ea7a616ceea51b94c1e90627fb06ec32308a (diff) | |
download | base-e343d44ca805f9713949ed51f2edfd134ac9a9cc.tar.gz |
Merge "Extract api_versions_defaults from api_versions_* modules" into main
-rw-r--r-- | api/StubLibraries.bp | 87 |
1 files changed, 52 insertions, 35 deletions
diff --git a/api/StubLibraries.bp b/api/StubLibraries.bp index 3e277e8a0cab..525c208b14a6 100644 --- a/api/StubLibraries.bp +++ b/api/StubLibraries.bp @@ -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. } ///////////////////////////////////////////////////////////////////// |