Skip to content

Commit dcc1430

Browse files
committed
build: replace custom BuildConfig task with BuildKonfig
- Add BuildKonfig plugin and dependency - Remove manual JVM BuildConfig generation task and logic - Configure BuildKonfig to generate VERSION_NAME - Update version reference from BuildConfig to BuildKonfig
1 parent 59302bd commit dcc1430

3 files changed

Lines changed: 21 additions & 37 deletions

File tree

composeApp/build.gradle.kts

Lines changed: 15 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import com.codingfeline.buildkonfig.compiler.FieldSpec
12
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
23

34
plugins {
@@ -6,6 +7,7 @@ plugins {
67
alias(libs.plugins.composeCompiler)
78
alias(libs.plugins.composeHotReload)
89
alias(libs.plugins.kotlinSerialization)
10+
alias(libs.plugins.buildkonfig)
911
}
1012
apply(from = "../versioning.gradle.kts")
1113

@@ -14,26 +16,6 @@ group = "com.meet"
1416
val appVersionName: () -> String by extra
1517
val appVersionCode: () -> Int by extra
1618

17-
// Generate BuildConfig for JVM (Configuration Cache Compatible)
18-
val generateJvmBuildConfig = tasks.register("generateJvmBuildConfig") {
19-
val outputDir = layout.buildDirectory.dir("generated/buildconfig/jvm")
20-
outputs.dir(outputDir)
21-
22-
doLast {
23-
val file = outputDir.get().asFile.resolve("com/meet/dev/analyzer/BuildConfig.kt")
24-
file.parentFile.mkdirs()
25-
file.writeText(
26-
"""
27-
package com.meet.dev.analyzer
28-
29-
object BuildConfig {
30-
const val VERSION_NAME = "${appVersionName()}"
31-
}
32-
""".trimIndent()
33-
)
34-
}
35-
}
36-
3719
java {
3820
toolchain {
3921
vendor = JvmVendorSpec.JETBRAINS
@@ -109,9 +91,6 @@ kotlin {
10991
commonTest.dependencies {
11092
implementation(libs.kotlin.test)
11193
}
112-
jvmMain {
113-
kotlin.srcDir(layout.buildDirectory.dir("generated/buildconfig/jvm"))
114-
}
11594
jvmMain.dependencies {
11695
// Compose Desktop
11796
implementation(compose.desktop.currentOs) // Platform-specific desktop support
@@ -122,17 +101,6 @@ kotlin {
122101
}
123102
}
124103

125-
afterEvaluate {
126-
tasks.matching { it.name.contains("kspKotlinJvm") || it.name == "compileKotlinJvm" }
127-
.configureEach {
128-
dependsOn(generateJvmBuildConfig)
129-
}
130-
}
131-
132-
tasks.named("compileKotlinJvm") {
133-
dependsOn(generateJvmBuildConfig)
134-
}
135-
136104
compose {
137105
resources {
138106
packageOfResClass = "com.meet.dev.analyzer"
@@ -191,4 +159,17 @@ compose {
191159
}
192160
}
193161
}
162+
}
163+
164+
// BuildConfig
165+
buildkonfig {
166+
packageName = "com.meet.dev.analyzer"
167+
168+
defaultConfigs {
169+
buildConfigField(
170+
FieldSpec.Type.STRING,
171+
"VERSION_NAME",
172+
appVersionName(),
173+
)
174+
}
194175
}

composeApp/src/jvmMain/kotlin/com/meet/dev/analyzer/utility/crash_report/CustomProperties.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.meet.dev.analyzer.utility.crash_report
22

3-
import com.meet.dev.analyzer.BuildConfig
3+
import com.meet.dev.analyzer.BuildKonfig
44
import com.meet.dev.analyzer.utility.platform.AppEnvironment
55
import com.meet.dev.analyzer.utility.platform.DesktopConfig
66
import java.io.InputStream
@@ -18,7 +18,7 @@ object CustomProperties {
1818

1919
fun createAppConfig(properties: Properties): DesktopConfig {
2020
val sentryDns = properties["sentry_dns"]?.toString()
21-
val version = BuildConfig.VERSION_NAME
21+
val version = BuildKonfig.VERSION_NAME
2222
val isRelease = properties["is_release"]?.toString()?.toBooleanStrictOrNull() ?: false
2323

2424
val appEnvironment = if (isRelease) AppEnvironment.Release else AppEnvironment.Debug

gradle/libs.versions.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ jsystemthemedetector = "3.6"
5252
# Crash Report
5353
sentry = "8.31.0"
5454

55+
# BuildConfig
56+
buildkonfig = "0.17.1"
5557

5658
[libraries]
5759
components-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "composeMultiplatform" }
@@ -128,4 +130,5 @@ composeHotReload = { id = "org.jetbrains.compose.hot-reload", version.ref = "com
128130
composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "composeMultiplatform" }
129131
composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
130132
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
131-
kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
133+
kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
134+
buildkonfig = { id = "com.codingfeline.buildkonfig", version.ref = "buildkonfig" }

0 commit comments

Comments
 (0)