2
0

desktopApp.gradle.kts 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import org.jetbrains.compose.desktop.application.dsl.TargetFormat
  2. plugins {
  3. alias(libs.plugins.kotlin.jvm)
  4. alias(libs.plugins.compose)
  5. alias(libs.plugins.compose.compiler)
  6. }
  7. kotlin {
  8. jvmToolchain(libs.versions.java.language.version.get().toInt())
  9. }
  10. dependencies {
  11. implementation(projects.shared)
  12. implementation(compose.desktop.currentOs)
  13. }
  14. // IDE run-config compatibility: the old KMP module exposed `desktopRun`; a plain JVM
  15. // Compose Desktop module exposes `run`. Keep `desktopRun` working as an alias.
  16. tasks.register("desktopRun") {
  17. group = "compose desktop"
  18. description = "Alias for :desktopApp:run (IDE run configuration compatibility)."
  19. dependsOn("run")
  20. }
  21. compose.desktop {
  22. application {
  23. jvmArgs("-Dprism.order=sw")
  24. mainClass = "org.mjdev.desktop.main.MainKt"
  25. nativeDistributions {
  26. packageName = libs.versions.app.name.get()
  27. packageVersion = libs.versions.app.pkg.version.get()
  28. description = libs.versions.app.description.get()
  29. copyright = libs.versions.app.copyright.get()
  30. outputBaseDir.set(rootProject.rootDir.resolve("packages"))
  31. linux {
  32. appCategory = libs.versions.app.category.get()
  33. debMaintainer = libs.versions.app.maintainer.get()
  34. menuGroup = libs.versions.app.menu.group.get()
  35. vendor = libs.versions.app.vendor.get()
  36. }
  37. targetFormats(
  38. TargetFormat.Deb,
  39. TargetFormat.Exe, // Windows installer — only built on a Windows host
  40. TargetFormat.AppImage,
  41. TargetFormat.Rpm,
  42. )
  43. buildTypes.release.proguard {
  44. configurationFiles.from("desktopApp.pro")
  45. // optional transitive deps (netty -> log4j2) defeat the optimizer's class
  46. // hierarchy analysis (IncompleteClassHierarchyException); shrink+obfuscate stay on
  47. optimize.set(false)
  48. }
  49. }
  50. }
  51. }