preparing the publication

This commit is contained in:
sergeych committed 2026-05-23 17:30:14 +03:00
1 parent bad1e89c26
commit 128275402e
18 files changed
+242 -22

No files matched your search

+42 -3
View File
@@ -2,6 +2,10 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat
import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
val appVersionName = "1.0"
val appVersionCode = 1
val appVersionDisplay = "$appVersionName.$appVersionCode"
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidApplication)
@@ -10,6 +14,38 @@ plugins {
alias(libs.plugins.composeHotReload)
}
abstract class GenerateAppVersionConstantsTask : DefaultTask() {
@get:Input
abstract val versionName: Property<String>
@get:Input
abstract val versionCode: Property<Int>
@get:OutputDirectory
abstract val outputDir: DirectoryProperty
@TaskAction
fun generate() {
val outputFile = outputDir.file("net/sergeych/toread/AppVersion.kt").get().asFile
outputFile.parentFile.mkdirs()
outputFile.writeText(
"""
package net.sergeych.toread
internal const val AppVersionName = "${versionName.get()}"
internal const val AppVersionCode = ${versionCode.get()}
internal const val AppVersionDisplay = "${versionName.get()}.${versionCode.get()}"
""".trimIndent() + "\n",
)
}
}
val generateAppVersionConstants by tasks.registering(GenerateAppVersionConstantsTask::class) {
versionName.set(appVersionName)
versionCode.set(appVersionCode)
outputDir.set(layout.buildDirectory.dir("generated/appVersion/commonMain/kotlin"))
}
kotlin {
jvmToolchain(17)
@@ -33,6 +69,9 @@ kotlin {
}
sourceSets {
commonMain {
kotlin.srcDir(generateAppVersionConstants)
}
androidMain.dependencies {
implementation(libs.compose.uiToolingPreview)
implementation(libs.androidx.activity.compose)
@@ -69,8 +108,8 @@ android {
applicationId = "net.sergeych.toread"
minSdk = libs.versions.android.minSdk.get().toInt()
targetSdk = libs.versions.android.targetSdk.get().toInt()
versionCode = 1
versionName = "1.0"
versionCode = appVersionCode
versionName = appVersionName
}
packaging {
resources {
@@ -100,7 +139,7 @@ compose.desktop {
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "To Read"
packageVersion = "1.0.0"
packageVersion = appVersionDisplay
macOS {
iconFile.set(project.file("src/jvmMain/resources/icons/icon.icns"))