Skip to content

Commit 8e84806

Browse files
committed
Move vars and keywords to extension for easier access from IDE plugin
1 parent bcf8c6e commit 8e84806

File tree

3 files changed

+31
-26
lines changed

3 files changed

+31
-26
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.replaymod.gradle.preprocess
2+
3+
import org.gradle.api.model.ObjectFactory
4+
import org.gradle.kotlin.dsl.mapProperty
5+
6+
open class PreprocessExtension(objects: ObjectFactory, val mcVersion: Int) {
7+
val vars = objects.mapProperty<String, Int>().convention(mutableMapOf(
8+
"MC" to mcVersion
9+
))
10+
val keywords = objects.mapProperty<String, Keywords>().convention(mutableMapOf(
11+
".java" to PreprocessTask.DEFAULT_KEYWORDS,
12+
".kt" to PreprocessTask.DEFAULT_KEYWORDS,
13+
".gradle" to PreprocessTask.DEFAULT_KEYWORDS,
14+
".json" to PreprocessTask.DEFAULT_KEYWORDS,
15+
".mcmeta" to PreprocessTask.DEFAULT_KEYWORDS,
16+
".cfg" to PreprocessTask.CFG_KEYWORDS
17+
))
18+
}

src/main/kotlin/com/replaymod/gradle/preprocess/PreprocessPlugin.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ class PreprocessPlugin : Plugin<Project> {
2323
val coreVersion = coreVersionFile.readText().toInt()
2424
val mcVersion = project.getMcVersion()
2525
project.extra["mcVersion"] = mcVersion
26+
val ext = project.extensions.create("preprocess", PreprocessExtension::class, project.objects, mcVersion)
27+
2628
if (coreVersion == mcVersion) {
2729
project.the<SourceSetContainer>().configureEach {
2830
java.setSrcDirs(listOf(parent.file("src/$name/java")))
@@ -83,7 +85,8 @@ class PreprocessPlugin : Plugin<Project> {
8385
}
8486
mapping = mappingFile
8587
reverseMapping = coreVersion < mcVersion
86-
vars = mutableMapOf("MC" to mcVersion)
88+
vars.convention(ext.vars)
89+
keywords.convention(ext.keywords)
8790
}
8891
val sourceJavaTask = project.tasks.findByName("source${name.capitalize()}Java")
8992
(sourceJavaTask ?: project.tasks["compile${cName}Java"]).dependsOn(preprocessJava)
@@ -96,7 +99,8 @@ class PreprocessPlugin : Plugin<Project> {
9699
compileTask(inherited.tasks["compile${cName}Kotlin"] as AbstractCompile)
97100
mapping = mappingFile
98101
reverseMapping = coreVersion < mcVersion
99-
vars = mutableMapOf("MC" to mcVersion)
102+
vars.convention(ext.vars)
103+
keywords.convention(ext.keywords)
100104
}
101105
val kotlinConsumerTask = project.tasks.findByName("source${name.capitalize()}Kotlin")
102106
?: project.tasks["compile${cName}Kotlin"]
@@ -108,7 +112,8 @@ class PreprocessPlugin : Plugin<Project> {
108112
val preprocessResources = project.tasks.register<PreprocessTask>("preprocess${cName}Resources") {
109113
source = inherited.file(inheritedSourceSet.resources.srcDirs.first())
110114
generated = preprocessedResources
111-
vars = mutableMapOf("MC" to mcVersion)
115+
vars.convention(ext.vars)
116+
keywords.convention(ext.keywords)
112117
}
113118
project.tasks["process${cName}Resources"].dependsOn(preprocessResources)
114119
resources.setSrcDirs(listOf(preprocessedResources))

src/main/kotlin/com/replaymod/gradle/preprocess/PreprocessTask.kt

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import org.gradle.api.DefaultTask
88
import org.gradle.api.file.FileCollection
99
import org.gradle.api.tasks.*
1010
import org.gradle.api.tasks.compile.AbstractCompile
11+
import org.gradle.kotlin.dsl.mapProperty
1112
import org.jetbrains.kotlin.backend.common.peek
1213
import org.jetbrains.kotlin.backend.common.pop
1314
import org.jetbrains.kotlin.backend.common.push
@@ -73,17 +74,10 @@ open class PreprocessTask : DefaultTask() {
7374
var classpath: FileCollection? = null
7475

7576
@Input
76-
var vars: MutableMap<String, Int> = mutableMapOf()
77+
val vars = project.objects.mapProperty<String, Int>()
7778

7879
@Input
79-
var keywords: MutableMap<String, Keywords> = mutableMapOf(
80-
".java" to DEFAULT_KEYWORDS,
81-
".kt" to DEFAULT_KEYWORDS,
82-
".gradle" to DEFAULT_KEYWORDS,
83-
".json" to DEFAULT_KEYWORDS,
84-
".mcmeta" to DEFAULT_KEYWORDS,
85-
".cfg" to CFG_KEYWORDS
86-
)
80+
val keywords = project.objects.mapProperty<String, Keywords>()
8781

8882
fun source(file: Any) {
8983
source = project.file(file)
@@ -103,18 +97,6 @@ open class PreprocessTask : DefaultTask() {
10397
classpath = task.classpath + project.files(task.destinationDir)
10498
}
10599

106-
fun `var`(name: String, value: Int) {
107-
vars[name] = value
108-
}
109-
110-
fun `var`(map: Map<String, Int>) {
111-
vars.putAll(map)
112-
}
113-
114-
fun keywords(extension: String, map: Keywords) {
115-
keywords[extension] = map
116-
}
117-
118100
@TaskAction
119101
fun preprocess() {
120102
val source = source!!
@@ -159,11 +141,11 @@ open class PreprocessTask : DefaultTask() {
159141
mappedSources = javaTransformer.remap(sources)
160142
}
161143

162-
val commentPreprocessor = CommentPreprocessor(vars)
144+
val commentPreprocessor = CommentPreprocessor(vars.get())
163145
project.fileTree(source).forEach { file ->
164146
val relPath = inPath.relativize(file.toPath())
165147
val outFile = outPath.resolve(relPath).toFile()
166-
val kws = keywords.entries.find { (ext, _) -> file.name.endsWith(ext) }
148+
val kws = keywords.get().entries.find { (ext, _) -> file.name.endsWith(ext) }
167149
if (kws != null) {
168150
val javaTransform = { lines: List<String> ->
169151
mappedSources?.get(relPath.toString())?.lines() ?: lines

0 commit comments

Comments
 (0)