Skip to content

Commit f5fbc83

Browse files
committed
chore: refactor build config plugin
1 parent 4ea2a0f commit f5fbc83

File tree

6 files changed

+33
-15
lines changed

6 files changed

+33
-15
lines changed

plugins/project/src/main/kotlin/dev.suresh.plugin.kotlin.jvm.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ kopy { functions = KopyFunctions.Copy }
8282
val javaAgent by configurations.registering { isTransitive = false }
8383

8484
tasks {
85+
val buildConfigExtn = extensions.create<BuildConfigExtension>("buildConfig")
86+
val buildConfig = register<BuildConfig>("buildConfig", buildConfigExtn)
87+
buildConfig.configure { enabled = buildConfigExtn.enabled.get() }
88+
kotlin.sourceSets.main { kotlin.srcDirs(buildConfig) }
89+
8590
// Configure "compileJava" and "compileTestJava" tasks.
8691
withType<JavaCompile>().configureEach { configureJavac(project) }
8792

plugins/project/src/main/kotlin/dev.suresh.plugin.kotlin.mpp.gradle.kts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,13 +95,11 @@ redacted {
9595
kopy { functions = KopyFunctions.Copy }
9696

9797
tasks {
98-
if (isSharedProject) {
99-
val buildConfigExtn = extensions.create<BuildConfigExtension>("buildConfig")
100-
val buildConfig by register<BuildConfig>("buildConfig", buildConfigExtn)
101-
kotlin.sourceSets.commonMain { kotlin.srcDirs(buildConfig) }
102-
// compileKotlinMetadata { dependsOn(buildConfig) }
103-
// maybeRegister<Task>("prepareKotlinIdeaImport") { dependsOn(buildConfig) }
104-
}
98+
val buildConfigExtn = extensions.create<BuildConfigExtension>("buildConfig")
99+
val buildConfig = register<BuildConfig>("buildConfig", buildConfigExtn)
100+
buildConfig.configure { enabled = buildConfigExtn.enabled.get() }
101+
kotlin.sourceSets.commonMain { kotlin.srcDirs(buildConfig) }
102+
// compileKotlinMetadata { dependsOn(buildConfig) }
105103

106104
withType<KspAATask>().configureEach { configureKspConfig() }
107105

plugins/project/src/main/kotlin/tasks/BuildConfig.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package tasks
22

3+
import com.github.ajalt.mordant.rendering.TextColors
34
import com.javiersc.semver.project.gradle.plugin.Commit
45
import gg.jte.generated.precompiled.StaticTemplates
56
import javax.inject.Inject
@@ -32,7 +33,7 @@ abstract class BuildConfig @Inject constructor(@Nested val extn: BuildConfigExte
3233
val pkg = fqName.substringBeforeLast(".", "")
3334

3435
val file = dir.resolve("$className.kt")
35-
logger.quiet("Generated build config file: ${file.name}")
36+
logger.quiet(TextColors.magenta("Generated build config file: ${file.name}"))
3637

3738
// Get git commit info
3839
val gitCommit = run {
@@ -76,10 +77,11 @@ abstract class BuildConfig @Inject constructor(@Nested val extn: BuildConfigExte
7677
}
7778

7879
open class BuildConfigExtension @Inject constructor(layout: ProjectLayout, objects: ObjectFactory) {
80+
@get:Input val enabled = objects.property<Boolean>().convention(false)
7981
@get:Input val classFqName = objects.property<String>().convention("BuildConfig")
80-
@get:Input val projectVersion = objects.property<String>()
81-
@get:Input val projectName = objects.property<String>()
82-
@get:Input val projectDesc = objects.property<String>()
82+
@get:Input val projectVersion = objects.property<String>().convention("")
83+
@get:Input val projectName = objects.property<String>().convention("")
84+
@get:Input val projectDesc = objects.property<String>().convention("")
8385
@get:Input val catalogVersions = objects.mapProperty<String, String>().convention(emptyMap())
8486
@get:Input val dependencies = objects.listProperty<String>().convention(emptyList())
8587
@Internal val gitCommit = objects.property<Commit>()

sandbox/build.gradle.kts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,17 @@ plugins {
88
alias(libs.plugins.shadow)
99
}
1010

11-
kotlin { jvmTarget(project) }
12-
1311
description = "Sandbox App"
1412

13+
buildConfig {
14+
enabled = true
15+
projectName = rootProject.name
16+
projectVersion = project.version.toString()
17+
projectDesc = rootProject.description
18+
gitCommit = semver.commits.get().first()
19+
catalogVersions = project.versionCatalogMapOf()
20+
}
21+
22+
kotlin { jvmTarget(project) }
23+
1524
application { mainClass = "MainKt" }

sandbox/settings.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
@file:Suppress("UnstableApiUsage")
22

3+
import com.javiersc.semver.settings.gradle.plugin.SemverSettingsExtension
4+
35
pluginManagement {
46
repositories {
57
gradlePluginPortal()
@@ -46,6 +48,8 @@ dependencyResolutionManagement {
4648
}
4749
}
4850

51+
configure<SemverSettingsExtension> { gitDir = file("$rootDir/../.git") }
52+
4953
plugins { id("dev.suresh.plugin.repos") version "+" }
5054

5155
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")

sandbox/src/jvmMain/kotlin/Main.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
fun main() {
2-
println("Hello, sandbox project! 🏖")
3-
println("Java: ${System.getProperty("java.runtime.version")}, Kotlin: ${KotlinVersion.CURRENT}")
2+
println("Hello, ${BuildConfig.name}! 🏖")
3+
println("Java: ${BuildConfig.java}, Kotlin: ${BuildConfig.kotlin}")
44
}

0 commit comments

Comments
 (0)