build: add a few proguard rules [1/3]

- Introduce a new directory for some specific proguard rules.

kotlin.flags:
- Remove DebugMetadata
- Don't warn about missing non-runtime annotations

Test: build AOSP & test on internal
Bug: 309023911
Change-Id: Iee740b61a2afeba3482ff4e1f8213bd4cf46174a
This commit is contained in:
Yifei Zhang 2023-11-02 17:23:07 -07:00
parent 581b781ac4
commit e6d996479b
2 changed files with 20 additions and 0 deletions

View file

@ -61,3 +61,4 @@
}
-include proguard_basic_keeps.flags
-include proguard/kotlin.flags

View file

@ -0,0 +1,19 @@
# Ignore missing Kotlin meta-annotations so that Java-only projects can depend
# on projects that happen to be written in Kotlin but do not have a run-time
# dependency on the Kotlin standard library. Note these annotations are RUNTIME
# retention, but we won't need them available in Java-only projects.
-dontwarn kotlin.Metadata
-dontwarn kotlin.annotation.AnnotationRetention
-dontwarn kotlin.annotation.AnnotationTarget
-dontwarn kotlin.annotation.Retention
-dontwarn kotlin.annotation.Target
# Kotlin DebugMetadata has no value in release builds, these two rules, will
# allow AppReduce to strip out DebutMetadata.
-checkdiscard interface kotlin.coroutines.jvm.internal.DebugMetadata
-assumenosideeffects class kotlin.coroutines.jvm.internal.DebugMetadataKt {
*** getDebugMetadataAnnotation(...);
}
-assumevalues class kotlin.coroutines.jvm.internal.DebugMetadataKt {
*** getDebugMetadataAnnotation(...) return null;
}