35 lines
1.1 KiB
Plaintext
35 lines
1.1 KiB
Plaintext
import gradle.kotlin.dsl.accessors._72efc76fad8c8cf3476d335fb6323bde.*
|
|
import io.gitlab.jfronny.scripts.codegen.ContentGenerator.Generated
|
|
import io.gitlab.jfronny.scripts.*
|
|
|
|
plugins {
|
|
java
|
|
}
|
|
|
|
extra["codeGenerators"] = LinkedHashMap<String, Generated>()
|
|
|
|
val jfCodegen by tasks.registering {
|
|
doLast {
|
|
(project.extra["codeGenerators"] as LinkedHashMap<String, Generated>).forEach { (name, generated) ->
|
|
generated.classes.forEach { (filePath, content) ->
|
|
val path = codegenDir.resolve("java").resolve(name).resolve(filePath)
|
|
path.parentFile.mkdirs()
|
|
path.writeText(content)
|
|
}
|
|
generated.resources.forEach { (filePath, content) ->
|
|
val path = codegenDir.resolve("resources").resolve(name).resolve(filePath)
|
|
path.parentFile.mkdirs()
|
|
path.writeBytes(content)
|
|
}
|
|
}
|
|
project.extra["codeGenerators"] = null
|
|
}
|
|
}
|
|
|
|
tasks.compileJava {
|
|
dependsOn(jfCodegen.get())
|
|
}
|
|
|
|
tasks.processResources {
|
|
dependsOn(jfCodegen.get())
|
|
} |