wow-backup/composeApp/build.gradle.kts
2026-03-04 15:33:29 +00:00

76 lines
2.2 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)
}
}
}
val appVersion = "0.1.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 = "com.rukira.wowbackup"
packageVersion = appVersion
}
}
}