ynsok
04/26/2022, 7:40 AMmin.jar
. The problem is that native distribution packages don’t want to use the obfuscated jar to create .dmg, even when I’ve clearly specified the location.
import com.netguru.extensions.desktopMain
import org.jetbrains.compose.compose
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
buildscript {
dependencies {
classpath(libs.desktop.proguard)
}
}
plugins {
kotlin("multiplatform")
alias(libs.plugins.compose)
}
group = libs.versions.project.group.get()
version = libs.versions.project.version.get()
kotlin {
jvm("desktop")
sourceSets {
desktopMain {
dependencies {
implementation(compose.desktop.currentOs)
implementation(project(":application"))
}
}
}
}
compose.desktop {
application {
mainClass = "MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = libs.versions.desktop.packageName.get()
packageVersion = libs.versions.desktop.packageVersion.get()
}
disableDefaultConfiguration()
from(kotlin.targets["desktop"])
val file: File? =
fileTree("build/compose/jars").files.firstOrNull { file: File -> file.name.contains(".min.jar") }
mainJar.set(file)
}
}
tasks.register("createDesktopPackage") {
group = "desktop package"
dependsOn("obfuscate")
dependsOn("package")
}
tasks.register<proguard.gradle.ProGuardTask>("obfuscate") {
val packageUberJarForCurrentOS by tasks.getting
dependsOn(packageUberJarForCurrentOS)
val files = packageUberJarForCurrentOS.outputs.files
injars(files)
outjars(files.map { file -> File(file.parentFile, "${file.nameWithoutExtension}.min.jar") })
val library = if (System.getProperty("java.version").startsWith("1.")) "lib/rt.jar" else "jmods"
libraryjars("${System.getProperty("java.home")}/$library")
configuration("<http://proguard-rules.pro|proguard-rules.pro>")
}
mcpiroman
04/26/2022, 12:51 PMynsok
04/26/2022, 1:06 PMspierce7
04/26/2022, 1:59 PMynsok
04/26/2022, 6:42 PM