diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts
index 8910b44..85dcac3 100644
--- a/composeApp/build.gradle.kts
+++ b/composeApp/build.gradle.kts
@@ -1,3 +1,4 @@
+import com.codingfeline.buildkonfig.compiler.FieldSpec.Type.STRING
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
plugins {
@@ -5,8 +6,11 @@ plugins {
alias(libs.plugins.composeMultiplatform)
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.kotlinSerialization)
+ alias(libs.plugins.buildkonfig)
}
+fun getVersion() = "1.3.0"
+
kotlin {
jvm("desktop")
@@ -59,6 +63,14 @@ kotlin {
}
}
+buildkonfig {
+ packageName = "com.pixelized.desktop.lwa"
+
+ defaultConfigs {
+ buildConfigField(STRING, "version", getVersion())
+ }
+}
+
// https://github.com/JetBrains/compose-multiplatform/blob/master/tutorials/Native_distributions_and_local_execution/README.md#basic-usage
compose.desktop {
application {
@@ -68,7 +80,7 @@ compose.desktop {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "Table de Lwa"
- packageVersion = "1.3.0"
+ packageVersion = getVersion()
description = "Application de support au jeux de rôle dans l'univers de Lwa."
copyright = "© 2020 Pixelized. All rights reserved."
vendor = "Pixelized"
diff --git a/composeApp/src/commonMain/composeResources/values/strings.xml b/composeApp/src/commonMain/composeResources/values/strings.xml
index 3003768..8c72632 100644
--- a/composeApp/src/commonMain/composeResources/values/strings.xml
+++ b/composeApp/src/commonMain/composeResources/values/strings.xml
@@ -231,6 +231,7 @@
niv : %1$d -
Admin
+ version : %1$s
GameMaster
Sauvegarder
Filtrer par nom :
diff --git a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/GameMasterScreen.kt b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/GameMasterScreen.kt
index abd0c70..06f3600 100644
--- a/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/GameMasterScreen.kt
+++ b/composeApp/src/commonMain/kotlin/com/pixelized/desktop/lwa/ui/screen/gamemaster/GameMasterScreen.kt
@@ -27,6 +27,7 @@ import androidx.compose.ui.unit.dp
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.rememberNavController
+import com.pixelized.desktop.lwa.BuildKonfig
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.GMActionDestination
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.composableGameMasterActionPage
import com.pixelized.desktop.lwa.ui.navigation.screen.destination.gamemaster.composableGameMasterAlterationEditPage
@@ -44,6 +45,7 @@ import com.pixelized.desktop.lwa.ui.theme.lwa
import lwacharactersheet.composeapp.generated.resources.Res
import lwacharactersheet.composeapp.generated.resources.game_master__action
import lwacharactersheet.composeapp.generated.resources.game_master__title
+import lwacharactersheet.composeapp.generated.resources.game_master__version
import org.jetbrains.compose.resources.stringResource
import org.koin.compose.viewmodel.koinViewModel
@@ -83,9 +85,19 @@ private fun GameMasterContent(
topBar = {
TopAppBar(
title = {
- Text(
- text = stringResource(Res.string.game_master__title),
- )
+ Row(
+ horizontalArrangement = Arrangement.spacedBy(space = 4.dp),
+ ) {
+ Text(
+ modifier = Modifier.alignByBaseline(),
+ text = stringResource(Res.string.game_master__title),
+ )
+ Text(
+ modifier = Modifier.alignByBaseline(),
+ style = MaterialTheme.lwa.typography.base.caption,
+ text = stringResource(Res.string.game_master__version, BuildKonfig.version),
+ )
+ }
},
actions = {
Row(
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 228b984..6d32363 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -11,6 +11,7 @@ turtle = "0.10.0"
logback = "1.5.17"
coil = "3.1.0"
ui-graphics-android = "1.7.8"
+buildkonfig = "0.17.0"
[plugins]
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }
@@ -19,6 +20,7 @@ kotlinJvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
ktor = { id = "io.ktor.plugin", version.ref = "ktor" }
+buildkonfig = { id = "com.codingfeline.buildkonfig", version.ref = "buildkonfig" }
[libraries]
# Test & preview