| // 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. |
| |
| // Build rules for the APIs that the various core libraries can depend on from |
| // each other: public SDK APIs and "intra-core" APIs. Intra-core APIs are not |
| // for use by other parts of the Android software stack. |
| |
| // Generates stub source files for the {public SDK + intra-core} API |
| // of the core jars. |
| droidstubs { |
| name: "core-intra-stubs", |
| srcs: [":core_api_files"], |
| no_standard_libs: true, |
| libs: ["core-all"], |
| |
| installable: false, |
| args: "--hide-annotation libcore.api.Hide " |
| + "--show-single-annotation libcore.api.IntraCoreApi " |
| + "--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/intra/current-api.txt", |
| removed_api_file: "api/intra/current-removed.txt", |
| }, |
| last_released: { |
| api_file: "api/intra/last-api.txt", |
| removed_api_file: "api/intra/last-removed.txt", |
| }, |
| }, |
| } |
| |
| // A library containing the {public SDK + intra-core} API stubs for the |
| // core jars. |
| java_library { |
| name: "core.intra.stubs", |
| srcs: [":core-intra-stubs"], |
| |
| no_standard_libs: true, |
| libs: ["core-all"], |
| system_modules: "core-all-system-modules", |
| openjdk9: { |
| javacflags: ["--patch-module=java.base=."], |
| }, |
| } |
| |
| // Used when compiling against core.intra.stubs. |
| java_system_modules { |
| name: "core-intra-stubs-system-modules", |
| libs: ["core.intra.stubs"], |
| } |
| |
| // A rule that checks we can build core-libart and core-oj using only the source |
| // for core-libart and core-oj and the APIs in core-intra-stubs. This proves we |
| // don't actually depend on things from (for example) conscrypt we haven't added |
| // to the intra-core API. |
| java_library { |
| name: "core-libart-oj.depscheck", |
| srcs: [ |
| ":core_libart_java_files", |
| ":core_oj_java_files", |
| ], |
| errorprone: { |
| javacflags: [ |
| "-Xep:MissingOverride:OFF", // Ignore missing @Override. |
| "-Xep:ConstantOverflow:WARN", // Known constant overflow in SplittableRandom |
| ], |
| }, |
| |
| installable: false, |
| |
| no_standard_libs: true, |
| libs: ["core.intra.stubs"], |
| system_modules: "core-intra-stubs-system-modules", |
| java_version: "1.9", |
| openjdk9: { |
| javacflags: ["--patch-module=java.base=."], |
| }, |
| } |
| |