95 lines
2.9 KiB
Kotlin
95 lines
2.9 KiB
Kotlin
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
|
|
|
|
plugins {
|
|
alias(libs.plugins.kotlinMultiplatform)
|
|
alias(libs.plugins.composeMultiplatform)
|
|
alias(libs.plugins.composeCompiler)
|
|
alias(libs.plugins.kotlinSerialization)
|
|
}
|
|
|
|
kotlin {
|
|
jvm()
|
|
|
|
sourceSets {
|
|
commonMain.dependencies {
|
|
implementation(compose.runtime)
|
|
implementation(compose.foundation)
|
|
implementation(compose.material3)
|
|
implementation(compose.ui)
|
|
implementation(compose.components.resources)
|
|
implementation(compose.components.uiToolingPreview)
|
|
implementation(libs.androidx.lifecycle.viewmodelCompose)
|
|
implementation(libs.androidx.lifecycle.runtimeCompose)
|
|
}
|
|
jvmMain.dependencies {
|
|
implementation(compose.desktop.currentOs)
|
|
implementation(libs.kotlinx.coroutinesSwing)
|
|
implementation(libs.kotlinx.datetime)
|
|
implementation(libs.kotlinx.serialization.json)
|
|
implementation(libs.cardiologist)
|
|
implementation(libs.kotlin.logging.jvm)
|
|
implementation(libs.logback.classic)
|
|
implementation(libs.material.kolor)
|
|
}
|
|
commonTest.dependencies {
|
|
implementation(kotlin("test"))
|
|
}
|
|
}
|
|
}
|
|
|
|
val appVersion = (project.findProperty("appVersion") as? String)?.takeIf { it.isNotBlank() } ?: "1.0.0"
|
|
|
|
val generatedSrcDir = layout.buildDirectory.dir("generated/src/jvmMain/kotlin")
|
|
|
|
val generateBuildConfig by tasks.registering {
|
|
val outputDir = generatedSrcDir
|
|
val version = appVersion
|
|
outputs.dir(outputDir)
|
|
doLast {
|
|
val dir = outputDir.get().asFile.resolve("com/rukira/wowbackup")
|
|
dir.mkdirs()
|
|
dir.resolve("BuildConfig.kt").writeText(
|
|
"""
|
|
|package com.rukira.wowbackup
|
|
|
|
|
|object BuildConfig {
|
|
| const val VERSION = "$version"
|
|
|}
|
|
""".trimMargin()
|
|
)
|
|
}
|
|
}
|
|
|
|
kotlin.sourceSets.named("jvmMain") {
|
|
kotlin.srcDir(generateBuildConfig)
|
|
}
|
|
|
|
compose.desktop {
|
|
application {
|
|
mainClass = "com.rukira.wowbackup.MainKt"
|
|
|
|
jvmArgs("-Dapple.awt.enableTemplateImages=true")
|
|
|
|
nativeDistributions {
|
|
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
|
|
packageName = "WoW Backup"
|
|
packageVersion = appVersion
|
|
|
|
modules("java.naming", "java.sql", "java.instrument", "jdk.unsupported")
|
|
|
|
macOS {
|
|
bundleID = "com.rukira.wowbackup"
|
|
iconFile.set(project.file("src/jvmMain/resources/icon.icns"))
|
|
}
|
|
|
|
windows {
|
|
iconFile.set(project.file("src/jvmMain/resources/icon.ico"))
|
|
upgradeUuid = "e5a8b2c4-1f3d-4a6e-9b7c-2d8f0e1a3b5c"
|
|
}
|
|
|
|
linux {
|
|
iconFile.set(project.file("src/jvmMain/resources/icon.png"))
|
|
}
|
|
}
|
|
}
|
|
}
|