diff --git a/java/core-libraries/Android.bp b/java/core-libraries/Android.bp index b9332dda5..128829ec0 100644 --- a/java/core-libraries/Android.bp +++ b/java/core-libraries/Android.bp @@ -79,16 +79,25 @@ java_library { ], } +// Defaults module to strip out android annotations +java_defaults { + name: "system-modules-no-annotations", + sdk_version: "none", + system_modules: "none", + jarjar_rules: "jarjar-strip-annotations-rules.txt", +} + // Same as core-current-stubs-for-system-modules, but android annotations are // stripped. java_library { name: "core-current-stubs-for-system-modules-no-annotations", visibility: ["//development/sdk"], + defaults: [ + "system-modules-no-annotations", + ], static_libs: [ "core-current-stubs-for-system-modules", ], - sdk_version: "none", - system_modules: "none", dists: [ { // Legacy dist location for the public file. @@ -100,7 +109,6 @@ java_library { targets: dist_targets, }, ], - jarjar_rules: "jarjar-strip-annotations-rules.txt", } // Used when compiling higher-level code against core.current.stubs. @@ -158,16 +166,16 @@ java_library { java_library { name: "core-module-lib-stubs-for-system-modules-no-annotations", visibility: ["//visibility:private"], + defaults: [ + "system-modules-no-annotations", + ], static_libs: [ "core-module-lib-stubs-for-system-modules", ], - sdk_version: "none", - system_modules: "none", dist: { dest: "system-modules/module-lib/core-for-system-modules-no-annotations.jar", targets: dist_targets, }, - jarjar_rules: "jarjar-strip-annotations-rules.txt", } // Used when compiling higher-level code with sdk_version "module_current" @@ -212,16 +220,16 @@ java_library { java_library { name: "legacy.core.platform.api.no.annotations.stubs", visibility: core_platform_visibility, + defaults: [ + "system-modules-no-annotations", + ], hostdex: true, compile_dex: true, - sdk_version: "none", - system_modules: "none", static_libs: [ "legacy.core.platform.api.stubs", ], patch_module: "java.base", - jarjar_rules: "jarjar-strip-annotations-rules.txt", } java_library { @@ -247,16 +255,16 @@ java_library { java_library { name: "stable.core.platform.api.no.annotations.stubs", visibility: core_platform_visibility, + defaults: [ + "system-modules-no-annotations", + ], hostdex: true, compile_dex: true, - sdk_version: "none", - system_modules: "none", static_libs: [ "stable.core.platform.api.stubs", ], patch_module: "java.base", - jarjar_rules: "jarjar-strip-annotations-rules.txt", } // Used when compiling higher-level code against *.core.platform.api.stubs. @@ -349,3 +357,7 @@ java_system_modules { "art-module-intra-core-api-stubs-system-modules-lib", ], } + +build = [ + "TxtStubLibraries.bp", +] diff --git a/java/core-libraries/TxtStubLibraries.bp b/java/core-libraries/TxtStubLibraries.bp new file mode 100644 index 000000000..b63ce4204 --- /dev/null +++ b/java/core-libraries/TxtStubLibraries.bp @@ -0,0 +1,142 @@ +// Copyright (C) 2023 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. + +// This file contains java_system_modules provided by the SDK. +// These system modules transitively depend on core stub libraries generated from .txt files. + +// Same as core-public-stubs-system-modules, but the stubs are generated from .txt files +java_system_modules { + name: "core-public-stubs-system-modules.from-text", + visibility: ["//visibility:public"], + libs: [ + "core-current-stubs-for-system-modules-no-annotations.from-text", + ], + // TODO: Enable after stub generation from .txt file is available + enabled: false, +} + +java_library { + name: "core-current-stubs-for-system-modules-no-annotations.from-text", + visibility: ["//visibility:private"], + defaults: [ + "system-modules-no-annotations", + ], + static_libs: [ + "core.current.stubs.from-txt", + "core-lambda-stubs-for-system-modules", + ], + // TODO: Enable after stub generation from .txt file is available + enabled: false, +} + +// Same as core-module-lib-stubs-system-modules, but the stubs are generated from .txt files +java_system_modules { + name: "core-module-lib-stubs-system-modules.from-text", + visibility: ["//visibility:public"], + libs: [ + "core-module-lib-stubs-for-system-modules-no-annotations.from-text", + ], + // TODO: Enable after stub generation from .txt file is available + enabled: false, +} + +java_library { + name: "core-module-lib-stubs-for-system-modules-no-annotations.from-text", + visibility: ["//visibility:private"], + defaults: [ + "system-modules-no-annotations", + ], + static_libs: [ + "core.module_lib.stubs.txt", + "core-lambda-stubs-for-system-modules", + ], + // TODO: Enable after stub generation from .txt file is available + enabled: false, +} + +java_library { + name: "core.module_lib.stubs.from-text", + static_libs: [ + "art.module.public.api.stubs.module_lib.from-text", + + // Replace the following with the module-lib correspondence when Conscrypt or i18N module + // provides @SystemApi(MODULE_LIBRARIES). Currently, assume that only ART module provides + // @SystemApi(MODULE_LIBRARIES). + "conscrypt.module.public.api.stubs.from-text", + "i18n.module.public.api.stubs.from-text", + ], + sdk_version: "none", + system_modules: "none", + visibility: ["//visibility:private"], + // TODO: Enable after stub generation from .txt file is available + enabled: false, +} + +// Same as legacy-core-platform-api-stubs-system-modules, but the stubs are generated from .txt files +java_system_modules { + name: "legacy-core-platform-api-stubs-system-modules.from-text", + visibility: core_platform_visibility, + libs: [ + "legacy.core.platform.api.no.annotations.stubs.from-text", + "core-lambda-stubs-for-system-modules", + ], + // TODO: Enable after stub generation from .txt file is available + enabled: false, +} + +java_library { + name: "legacy.core.platform.api.no.annotations.stubs.from-text", + visibility: core_platform_visibility, + defaults: [ + "system-modules-no-annotations", + ], + hostdex: true, + compile_dex: true, + + static_libs: [ + "legacy.core.platform.api.stubs.from-text", + ], + patch_module: "java.base", + // TODO: Enable after stub generation from .txt file is available + enabled: false, +} + +// Same as stable-core-platform-api-stubs-system-modules, but the stubs are generated from .txt files +java_system_modules { + name: "stable-core-platform-api-stubs-system-modules.from-text", + visibility: core_platform_visibility, + libs: [ + "stable.core.platform.api.no.annotations.stubs.from-text", + "core-lambda-stubs-for-system-modules", + ], + // TODO: Enable after stub generation from .txt file is available + enabled: false, +} + +java_library { + name: "stable.core.platform.api.no.annotations.stubs.from-text", + visibility: core_platform_visibility, + defaults: [ + "system-modules-no-annotations", + ], + hostdex: true, + compile_dex: true, + + static_libs: [ + "stable.core.platform.api.stubs.from-text", + ], + patch_module: "java.base", + // TODO: Enable after stub generation from .txt file is available + enabled: false, +}