Clean up convention plugins

This commit is contained in:
Johannes Frohnmeyer 2023-07-19 19:12:47 +02:00
parent 84b9dadd1d
commit 41e43cdd9d
Signed by: Johannes
GPG Key ID: E76429612C2929F4
7 changed files with 93 additions and 75 deletions

View File

@ -0,0 +1,50 @@
import io.gitlab.jfronny.scripts.*
plugins {
base
}
tasks.withType<AbstractArchiveTask>().configureEach {
isPreserveFileTimestamps = false
isReproducibleFileOrder = true
}
earlyAfterEvaluates = ArrayList()
afterEvaluate {
earlyAfterEvaluates!!.forEach {
it.execute(this)
}
earlyAfterEvaluates = null
}
tasks.register("printTaskGraph") {
doLast {
fun getTask(task: Any): Either<Task, String> {
return when (task) {
is Provider<*> -> getTask(task.get())
is String -> Either.Left(tasks.getByPath(task))
is Task -> Either.Left(task)
else -> Either.Right("$task")
}
}
fun printTaskGraph(task: Task, indent: Int, known: MutableSet<Task>) {
if (known.contains(task)) {
println(" ".repeat(indent) + "- ${task.name} (*)")
return
}
known.add(task)
println(" ".repeat(indent) + "- ${task.name}")
task.dependsOn.forEach {
getTask(it).apply({ dependency ->
printTaskGraph(dependency, indent + 1, known)
}, { error ->
println(" ".repeat(indent + 1) + "- UNEXPECTED!: $error")
})
}
}
printTaskGraph(tasks.getByPath(prop("taskGraph", "build")), 0, LinkedHashSet())
}
}

View File

@ -1,31 +1,4 @@
import io.gitlab.jfronny.scripts.*
plugins {
java
id("jf.java")
}
extra["codeGenerators"] = LinkedHashMap<String, ContentGenerator.Generated>()
val jfCodegen by tasks.registering {
doLast {
val generators = project.extra["codeGenerators"] as LinkedHashMap<String, ContentGenerator.Generated>
if (codegenDir.exists()) codegenDir.deleteRecursively()
generators.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) }
tasks.processResources { dependsOn(jfCodegen) }
//TODO remove this deprecated plugin in the next release

View File

@ -1,10 +1,4 @@
import io.gitlab.jfronny.scripts.*
earlyAfterEvaluates = ArrayList()
afterEvaluate {
earlyAfterEvaluates!!.forEach {
it.execute(this)
}
earlyAfterEvaluates = null
}
plugins {
id("jf.base")
}
//TODO remove this deprecated plugin in the next release

View File

@ -0,0 +1,33 @@
import io.gitlab.jfronny.scripts.ContentGenerator
import io.gitlab.jfronny.scripts.codegenDir
plugins {
id("jf.base")
`java-library`
}
extra["codeGenerators"] = LinkedHashMap<String, ContentGenerator.Generated>()
val jfCodegen by tasks.registering {
doLast {
val generators = project.extra["codeGenerators"] as LinkedHashMap<String, ContentGenerator.Generated>
if (codegenDir.exists()) codegenDir.deleteRecursively()
generators.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) }
tasks.processResources { dependsOn(jfCodegen) }

View File

@ -2,7 +2,7 @@ import io.gitlab.jfronny.scripts.earlyAfterEvaluate
plugins {
id("jf.earlyafterevaluate")
`java-library`
id("jf.java")
}
val manifoldVersion by extra("2023.1.10")

View File

@ -1,36 +1,4 @@
import io.gitlab.jfronny.scripts.*
plugins {
base
}
tasks.register("printTaskGraph") {
doLast {
fun getTask(task: Any): Either<Task, String> {
return when (task) {
is Provider<*> -> getTask(task.get())
is String -> Either.Left(tasks.getByPath(task))
is Task -> Either.Left(task)
else -> Either.Right("$task")
}
}
fun printTaskGraph(task: Task, indent: Int, known: MutableSet<Task>) {
if (known.contains(task)) {
println(" ".repeat(indent) + "- ${task.name} (*)")
return
}
known.add(task)
println(" ".repeat(indent) + "- ${task.name}")
task.dependsOn.forEach {
getTask(it).apply({ dependency ->
printTaskGraph(dependency, indent + 1, known)
}, { error ->
println(" ".repeat(indent + 1) + "- UNEXPECTED!: $error")
})
}
}
printTaskGraph(tasks.getByPath(prop("taskGraph", "build")), 0, LinkedHashSet())
}
id("jf.base")
}
//TODO remove this deprecated plugin in the next release

View File

@ -75,7 +75,7 @@ afterEvaluate {
}
if (!isRoot) rootProject.dependencies {
api(project(mapOf("path" to project.path, "configuration" to "shadow")))
api(project(path = project.path, configuration = "shadow"))
clientImplementation(sourceSets.client.get().output)
testmodImplementation(sourceSets.testmod.get().output)