summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorketsuban <ketsuban@kukuri.dev>2026-08-28 17:13:36 +0000
committerketsuban <ketsuban@kukuri.dev>2026-08-28 17:13:36 +0000
commitb399dbd6ab6d0597998d0fe068c2178bf6d4dfa4 (patch)
treebe762816e73b9290d2e8001f1cffab34f2cdd808
parentc9b305378b70685f59d1eca98d906180d0afe2b4 (diff)
downloadkukuri-b399dbd6ab6d0597998d0fe068c2178bf6d4dfa4.tar.gz
kukuri-b399dbd6ab6d0597998d0fe068c2178bf6d4dfa4.tar.bz2
kukuri-b399dbd6ab6d0597998d0fe068c2178bf6d4dfa4.zip
desktop fat jar: bundle skiko natives for all desktop OSes
compose.desktop.currentOs resolved only linux-x64 runtime, so Windows/macOS users hit missing skiko-windows64.dll(.sha256) on launch. Add explicit skiko-awt-runtime-{windows-x64,macos-arm64,macos-x64} 0.9.4.2 (aligned with CMP 1.8.2) extracted into the fat jar; jar now carries linux/windows/macos natives (66MB) and boots clean on linux
-rw-r--r--apps/desktop/build.gradle.kts15
1 files changed, 15 insertions, 0 deletions
diff --git a/apps/desktop/build.gradle.kts b/apps/desktop/build.gradle.kts
index 86a11ae..4344b49 100644
--- a/apps/desktop/build.gradle.kts
+++ b/apps/desktop/build.gradle.kts
@@ -36,6 +36,16 @@ compose.desktop {
}
}
+val skikoWindowsX64 by configurations.creating
+val skikoMacosArm64 by configurations.creating
+val skikoMacosX64 by configurations.creating
+
+dependencies {
+ skikoWindowsX64("org.jetbrains.skiko:skiko-awt-runtime-windows-x64:0.9.4.2")
+ skikoMacosArm64("org.jetbrains.skiko:skiko-awt-runtime-macos-arm64:0.9.4.2")
+ skikoMacosX64("org.jetbrains.skiko:skiko-awt-runtime-macos-x64:0.9.4.2")
+}
+
val desktopFatJar = tasks.register<Jar>("desktopFatJar") {
group = "deployment"
dependsOn(tasks.named("jvmJar"))
@@ -48,4 +58,9 @@ val desktopFatJar = tasks.register<Jar>("desktopFatJar") {
kotlin.targets.findByName("jvm")!!
.compilations.getByName("main").runtimeDependencyFiles!!.files.map { if (it.isDirectory) it else zipTree(it) },
) { exclude("META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA", "module-info.class") }
+ from(
+ listOf(skikoWindowsX64, skikoMacosArm64, skikoMacosX64).map { cfg ->
+ cfg.map { if (it.isDirectory) it else zipTree(it) }
+ },
+ ) { exclude("META-INF/**") }
}