Add a system modules containing module lib APIs
(cherry picked from commit 2b6c832f50e6815cc9062d84ecc428dcd29df74f)
Bug: 183097033
Test: m droid
Merged-In: I747950821a44ef05612bc48effbcd203c74bd13f
Change-Id: I20d5dbf3f10deadab872b55a358d125949e4eb77
diff --git a/JavaLibrary.bp b/JavaLibrary.bp
index ff89655..6e1a871 100644
--- a/JavaLibrary.bp
+++ b/JavaLibrary.bp
@@ -1056,6 +1056,43 @@
],
}
+// A stubs target containing the parts of the public SDK & @SystemApi(MODULE_LIBRARIES) API
+// provided by the core library.
+//
+// Don't use this directly, use "sdk_version: module_current".
+java_library {
+ name: "core.module_lib.stubs",
+ static_libs: [
+ "art.module.public.api.stubs.module_lib",
+
+ // 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",
+ "i18n.module.public.api.stubs",
+ ],
+ sdk_version: "none",
+ system_modules: "none",
+ visibility: ["//visibility:private"],
+}
+
+// Used when compiling higher-level code with sdk_version "module_current"
+java_system_modules {
+ name: "core-module-lib-stubs-system-modules",
+ libs: [
+ "core.module_lib.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",
+ ],
+ visibility: ["//visibility:public"],
+}
+
// Target for validating nullability annotations for correctness and
// completeness. To check that there are no nullability errors:
// m art-module-public-api-stubs-nullability-validation