1+ import java.nio.file.Files
2+
13// region properties
24val relocationPrefix: String by project
35val 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