Merge "Strip annotations from library stubs"

This commit is contained in:
Sorin Basca
2022-05-11 13:46:25 +00:00
committed by Gerrit Code Review
2 changed files with 61 additions and 3 deletions

View File

@@ -138,11 +138,29 @@ java_library {
}, },
} }
// Same as core-module-lib-stubs-for-system-modules, but android annotations are
// stripped. This is used by the Java toolchain, while the annotated stub is to
// be used by Kotlin one.
java_library {
name: "core-module-lib-stubs-for-system-modules-no-annotations",
visibility: ["//visibility:private"],
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" // Used when compiling higher-level code with sdk_version "module_current"
java_system_modules { java_system_modules {
name: "core-module-lib-stubs-system-modules", name: "core-module-lib-stubs-system-modules",
libs: [ libs: [
"core-module-lib-stubs-for-system-modules", "core-module-lib-stubs-for-system-modules-no-annotations",
], ],
visibility: ["//visibility:public"], visibility: ["//visibility:public"],
} }
@@ -174,6 +192,24 @@ java_library {
patch_module: "java.base", patch_module: "java.base",
} }
// Same as legacy.core.platform.api.stubs, but android annotations are
// stripped. This is used by the Java toolchain, while the annotated stub is to
// be used by Kotlin one.
java_library {
name: "legacy.core.platform.api.no.annotations.stubs",
visibility: core_platform_visibility,
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 { java_library {
name: "stable.core.platform.api.stubs", name: "stable.core.platform.api.stubs",
visibility: core_platform_visibility, visibility: core_platform_visibility,
@@ -191,12 +227,30 @@ java_library {
patch_module: "java.base", patch_module: "java.base",
} }
// Same as stable.core.platform.api.stubs, but android annotations are
// stripped. This is used by the Java toolchain, while the annotated stub is to
// be used by Kotlin one.
java_library {
name: "stable.core.platform.api.no.annotations.stubs",
visibility: core_platform_visibility,
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. // Used when compiling higher-level code against *.core.platform.api.stubs.
java_system_modules { java_system_modules {
name: "legacy-core-platform-api-stubs-system-modules", name: "legacy-core-platform-api-stubs-system-modules",
visibility: core_platform_visibility, visibility: core_platform_visibility,
libs: [ libs: [
"legacy.core.platform.api.stubs", "legacy.core.platform.api.no.annotations.stubs",
// This one is not on device but it's needed when javac compiles code // This one is not on device but it's needed when javac compiles code
// containing lambdas. // containing lambdas.
"core-lambda-stubs-for-system-modules", "core-lambda-stubs-for-system-modules",
@@ -212,7 +266,7 @@ java_system_modules {
name: "stable-core-platform-api-stubs-system-modules", name: "stable-core-platform-api-stubs-system-modules",
visibility: core_platform_visibility, visibility: core_platform_visibility,
libs: [ libs: [
"stable.core.platform.api.stubs", "stable.core.platform.api.no.annotations.stubs",
// This one is not on device but it's needed when javac compiles code // This one is not on device but it's needed when javac compiles code
// containing lambdas. // containing lambdas.
"core-lambda-stubs-for-system-modules", "core-lambda-stubs-for-system-modules",

View File

@@ -0,0 +1,4 @@
strip-annotation android.annotation.NotNull
strip-annotation android.annotation.Nullable
strip-annotation androidx.annotation.RecentlyNonNull
strip-annotation androidx.annotation.RecentlyNullable