mirror of
https://github.com/Suwayomi/TachideskJUI.git
synced 2025-12-10 06:42:05 +01:00
Add proguard configuration
This commit is contained in:
@@ -7,6 +7,7 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
|||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
import org.jmailen.gradle.kotlinter.tasks.FormatTask
|
import org.jmailen.gradle.kotlinter.tasks.FormatTask
|
||||||
import org.jmailen.gradle.kotlinter.tasks.LintTask
|
import org.jmailen.gradle.kotlinter.tasks.LintTask
|
||||||
|
import proguard.gradle.ProGuardTask
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
kotlin("jvm") version "1.6.10"
|
kotlin("jvm") version "1.6.10"
|
||||||
@@ -18,6 +19,17 @@ plugins {
|
|||||||
id("com.github.ben-manes.versions") version "0.39.0"
|
id("com.github.ben-manes.versions") version "0.39.0"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
buildscript {
|
||||||
|
repositories {
|
||||||
|
mavenCentral()
|
||||||
|
}
|
||||||
|
dependencies {
|
||||||
|
classpath("com.guardsquare:proguard-gradle:7.2.0-beta6") {
|
||||||
|
exclude("com.android.tools.build")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
group = "ca.gosyer"
|
group = "ca.gosyer"
|
||||||
version = "1.2.1"
|
version = "1.2.1"
|
||||||
|
|
||||||
@@ -161,6 +173,26 @@ tasks {
|
|||||||
isNonStable(candidate.version) && !isNonStable(currentVersion)
|
isNonStable(candidate.version) && !isNonStable(currentVersion)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
register<ProGuardTask>("optimizeUberJar") {
|
||||||
|
group = "compose desktop"
|
||||||
|
val packageUberJarForCurrentOS = getByName("packageUberJarForCurrentOS")
|
||||||
|
dependsOn(packageUberJarForCurrentOS)
|
||||||
|
val uberJars = packageUberJarForCurrentOS.outputs.files
|
||||||
|
injars(uberJars)
|
||||||
|
outjars(
|
||||||
|
uberJars.map { file ->
|
||||||
|
File(file.parentFile, "min/" + file.name)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
val javaHome = System.getProperty("java.home")
|
||||||
|
if (JavaVersion.current().isJava9Compatible) {
|
||||||
|
libraryjars("$javaHome/jmods")
|
||||||
|
} else {
|
||||||
|
libraryjars("$javaHome/lib/rt.jar")
|
||||||
|
libraryjars("$javaHome/lib/jce.jar")
|
||||||
|
}
|
||||||
|
configuration("proguard-rules.pro")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isNonStable(version: String): Boolean {
|
fun isNonStable(version: String): Boolean {
|
||||||
|
|||||||
66
proguard-rules.pro
vendored
Normal file
66
proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
-dontobfuscate
|
||||||
|
-keepattributes Signature,LineNumberTable
|
||||||
|
|
||||||
|
-keep,allowoptimization class ca.gosyer.** { public protected *; }
|
||||||
|
-keep class ca.gosyer.ui.main.MainKt {
|
||||||
|
public static void main(java.lang.String[]);
|
||||||
|
}
|
||||||
|
-keep class 'module-info'
|
||||||
|
|
||||||
|
# Kotlin
|
||||||
|
# todo optimize more
|
||||||
|
-keep class kotlin.reflect.** { *; }
|
||||||
|
|
||||||
|
# Log4J
|
||||||
|
-dontwarn org.apache.logging.log4j.**
|
||||||
|
-keep class org.apache.logging.log4j.** { *; }
|
||||||
|
|
||||||
|
# SLF4J
|
||||||
|
-dontwarn org.apache.logging.slf4j.**
|
||||||
|
-keep class org.apache.logging.slf4j.** { *; }
|
||||||
|
|
||||||
|
# OKHTTP
|
||||||
|
-dontwarn org.codehaus.mojo.animal_sniffer.*
|
||||||
|
-dontwarn okhttp3.internal.platform.**
|
||||||
|
|
||||||
|
# DarkLaf
|
||||||
|
# todo optimize more
|
||||||
|
-keep class com.github.weisj.darklaf.** { *; }
|
||||||
|
-dontwarn com.github.weisj.darklaf.**
|
||||||
|
|
||||||
|
# Ktor
|
||||||
|
-dontwarn io.ktor.network.sockets.DatagramSendChannel
|
||||||
|
|
||||||
|
# Coroutines
|
||||||
|
-keep class kotlinx.coroutines.swing.** { *; }
|
||||||
|
-dontwarn kotlinx.coroutines.**
|
||||||
|
|
||||||
|
# Other
|
||||||
|
-dontwarn org.pbjar.jxlayer.plaf.ext.TransformUI
|
||||||
|
-dontwarn com.kitfox.svg.app.ant.SVGToImageAntTask
|
||||||
|
-dontwarn nl.adaptivity.xmlutil.StAXWriter
|
||||||
|
-keep class com.sun.jna.** { *; }
|
||||||
|
|
||||||
|
# Kotlin Serialization
|
||||||
|
-keepattributes *Annotation*, InnerClasses
|
||||||
|
-dontnote kotlinx.serialization.AnnotationsKt # core serialization annotations
|
||||||
|
|
||||||
|
# kotlinx-serialization-json specific. Add this if you have java.lang.NoClassDefFoundError kotlinx.serialization.json.JsonObjectSerializer
|
||||||
|
-keepclassmembers class kotlinx.serialization.json.** {
|
||||||
|
*** Companion;
|
||||||
|
}
|
||||||
|
-keepclasseswithmembers class kotlinx.serialization.json.** {
|
||||||
|
kotlinx.serialization.KSerializer serializer(...);
|
||||||
|
}
|
||||||
|
|
||||||
|
-keep,includedescriptorclasses class eu.kanade.tachiyomi.**$$serializer { *; }
|
||||||
|
-keepclassmembers class ca.gosyer.** {
|
||||||
|
*** Companion;
|
||||||
|
}
|
||||||
|
-keepclasseswithmembers class ca.gosyer.** {
|
||||||
|
kotlinx.serialization.KSerializer serializer(...);
|
||||||
|
}
|
||||||
|
|
||||||
|
# Keep Skia
|
||||||
|
-keep class org.jetbrains.skia.** { *; }
|
||||||
|
-keep class org.jetbrains.skiko.** { *; }
|
||||||
Reference in New Issue
Block a user