| // Copyright (C) 2018 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Generates stub source files for the core platform API of the ART module. |
| // i.e. every class/member that is either in the public API or annotated with |
| // @CorePlatformApi. |
| // |
| // The API specification .txt files managed by this only contain the additional |
| // classes/members that are in the intra-core API but which are not in the public |
| // API. |
| droidstubs { |
| name: "art-module-platform-api-stubs-source", |
| srcs: [ |
| ":art_module_api_files", |
| ], |
| sdk_version: "none", |
| system_modules: "none", |
| libs: [ |
| // Needed to break the cycle in the platform api caused by |
| // b/141747409. |
| "i18n.module.intra.core.api.stubs", |
| ], |
| |
| installable: false, |
| args: "--hide HiddenSuperclass " + |
| "--hide-annotation libcore.api.Hide " + |
| "--show-single-annotation libcore.api.CorePlatformApi " + |
| "--skip-annotation-instance-methods=false ", |
| merge_inclusion_annotations_dirs: ["ojluni-annotated-mmodule-stubs"], |
| |
| api_filename: "api.txt", |
| removed_api_filename: "removed.txt", |
| previous_api: "previous.txt", |
| |
| check_api: { |
| current: { |
| api_file: "api/platform/current-api.txt", |
| removed_api_file: "api/platform/current-removed.txt", |
| }, |
| last_released: { |
| api_file: "api/platform/last-api.txt", |
| removed_api_file: "api/platform/last-removed.txt", |
| }, |
| }, |
| } |
| |
| // A special set of system modules that is needed to break the cycle in the |
| // platform api caused by b/141747409. |
| java_system_modules { |
| name: "break-cycle-in-core-platform-system-modules", |
| libs: [ |
| "art.module.intra.core.api.stubs", |
| "i18n.module.intra.core.api.stubs", |
| ], |
| } |
| |
| // A library containing the core platform API stubs of the ART module. |
| // |
| // Core platform APIs are only intended for use of other parts of the platform, not the |
| // core library modules. |
| java_library { |
| name: "art.module.platform.api.stubs", |
| srcs: [ |
| ":art-module-platform-api-stubs-source", |
| ], |
| hostdex: true, |
| |
| sdk_version: "none", |
| system_modules: "break-cycle-in-core-platform-system-modules", |
| patch_module: "java.base", |
| } |
| |
| // Used when compiling higher-level code against core.platform.api.stubs. |
| java_system_modules { |
| name: "art-module-platform-api-stubs-system-modules", |
| visibility: [ |
| "//art/build/sdk", |
| "//external/conscrypt", |
| "//external/icu/android_icu4j", |
| "//external/wycheproof", |
| ], |
| libs: [ |
| "art.module.platform.api.stubs", |
| ], |
| } |
| |
| // Ideally this should be a restricted whitelist but there are hundreds of modules that depend on |
| // this. |
| // TODO(http://b/134561230) - limit the number of dependents on this. |
| core_platform_visibility = ["//visibility:public"] |
| |
| // A library containing the core platform API stubs for the core libraries. |
| // |
| // Although this stubs library is primarily used by the Java compiler / build to indicate |
| // the core platform API surface area, compile_dex: true is used so that the Core Platform |
| // API annotations are available to the dex tools that enable enforcement of runtime |
| // accessibility. b/119068555 |
| java_library { |
| name: "core.platform.api.stubs", |
| visibility: core_platform_visibility, |
| hostdex: true, |
| compile_dex: true, |
| |
| sdk_version: "none", |
| system_modules: "none", |
| static_libs: [ |
| "art.module.platform.api.stubs", |
| "conscrypt.module.platform.api.stubs", |
| "i18n.module.platform.api.stubs", |
| ], |
| patch_module: "java.base", |
| } |
| |
| // Used when compiling higher-level code against core.platform.api.stubs. |
| java_system_modules { |
| name: "core-platform-api-stubs-system-modules", |
| visibility: core_platform_visibility, |
| libs: [ |
| "core.platform.api.stubs", |
| // This one is not on device but it's needed when javac compiles code |
| // containing lambdas. |
| "core-lambda-stubs-for-system-modules", |
| // This one is not on device but it's needed when javac compiles code |
| // containing @Generated annotations produced by some code generation |
| // tools. |
| // See http://b/123891440. |
| "core-generated-annotation-stubs", |
| ], |
| } |