Skip to content

Commit 0a50f37

Browse files
committed
feat: update generateConstants task to use new output directory and improve content generation
1 parent 273b0b7 commit 0a50f37

File tree

1 file changed

+34
-38
lines changed

1 file changed

+34
-38
lines changed

surf-api-gradle-plugin/build.gradle.kts

Lines changed: 34 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import java.nio.file.Files
2+
13
// region properties
24
val relocationPrefix: String by project
35
val mcVersion: String by project
@@ -83,49 +85,43 @@ gradlePlugin {
8385
}
8486
}
8587

86-
val generatedConstantsDir = layout.buildDirectory.dir("generated/source/constants")
87-
val generateConstantsTask by tasks.register("generateConstants") {
88-
val outputFile = generatedConstantsDir.map { it.file("Constants.kt") }
88+
val generateConstants by tasks.registering {
89+
val outputDir = layout.buildDirectory.dir("generated/dev/slne/surf/surfapi/gradle/generated")
90+
val outputFile = outputDir.map { it.file("Constants.kt") }
8991

90-
outputs.file(outputFile)
92+
inputs.property("relocationPrefix", relocationPrefix)
93+
inputs.property("javaVersion", javaVersion)
94+
inputs.property("mcVersion", mcVersion)
95+
inputs.property("libs.paper.api", libs.paper.api.get().toString())
96+
inputs.property("libs.velocity.api", libs.velocity.api.get().toString())
97+
inputs.property("libs.auto.service.annotations", libs.auto.service.annotations.get().toString())
98+
inputs.property("libs.auto.service", libs.auto.service.asProvider().get().toString())
99+
outputs.dir(outputDir)
91100

92101
doLast {
93-
//language=kotlin
94102
val content = """
95-
package dev.slne.surf.surfapi.gradle.generated
96-
97-
internal object Constants {
98-
const val RELOCATION_PREFIX = "$relocationPrefix"
99-
const val SNAPSHOT_REPO_ID = "maven-snapshots"
100-
const val SNAPSHOT_REPO = "https://repo.slne.dev/repository/maven-snapshots"
101-
const val PAPER_API = "${libs.paper.api.get()}"
102-
const val VELOCITY_API = "${libs.velocity.api.get()}"
103-
const val AUTO_SERVICE_ANNOTATIONS = "${libs.auto.service.annotations.get()}"
104-
const val AUTO_SERVICE = "${libs.auto.service.asProvider().get()}"
105-
106-
const val JAVA_VERSION = $javaVersion
107-
const val MINECRAFT_VERSION = "$mcVersion"
108-
const val SURF_API_VERSION = "$mcVersion+"
109-
}
110-
""".trimIndent()
111-
112-
outputFile.get().asFile.apply {
113-
parentFile.mkdirs()
114-
writeText(content)
115-
}
103+
|package dev.slne.surf.surfapi.gradle.generated
104+
|
105+
|internal object Constants {
106+
| const val RELOCATION_PREFIX = "$relocationPrefix"
107+
| const val SNAPSHOT_REPO_ID = "maven-snapshots"
108+
| const val SNAPSHOT_REPO = "https://repo.slne.dev/repository/maven-snapshots"
109+
| const val PAPER_API = "${libs.paper.api.get()}"
110+
| const val VELOCITY_API = "${libs.velocity.api.get()}"
111+
| const val AUTO_SERVICE_ANNOTATIONS = "${libs.auto.service.annotations.get()}"
112+
| const val AUTO_SERVICE = "${libs.auto.service.asProvider().get()}"
113+
|
114+
| const val JAVA_VERSION = $javaVersion
115+
| const val MINECRAFT_VERSION = "$mcVersion"
116+
| const val SURF_API_VERSION = "$mcVersion+"
117+
|}
118+
""".trimMargin()
119+
120+
Files.createDirectories(outputDir.get().asFile.toPath())
121+
outputFile.get().asFile.writeText(content)
116122
}
117-
118-
outputs.upToDateWhen { false }
119123
}
120124

121-
afterEvaluate {
122-
generateConstantsTask.actions.forEach {
123-
it.execute(generateConstantsTask)
124-
}
125-
}
126-
127-
sourceSets {
128-
main {
129-
java.srcDir(generatedConstantsDir)
130-
}
125+
sourceSets.main {
126+
kotlin.srcDir(generateConstants.map { it.outputs.files.singleFile })
131127
}

0 commit comments

Comments
 (0)