diff --git a/convention/src/main/kotlin/jf.base.gradle.kts b/convention/src/main/kotlin/jf.base.gradle.kts new file mode 100644 index 0000000..b265b66 --- /dev/null +++ b/convention/src/main/kotlin/jf.base.gradle.kts @@ -0,0 +1,50 @@ +import io.gitlab.jfronny.scripts.* + +plugins { + base +} + +tasks.withType().configureEach { + isPreserveFileTimestamps = false + isReproducibleFileOrder = true +} + +earlyAfterEvaluates = ArrayList() + +afterEvaluate { + earlyAfterEvaluates!!.forEach { + it.execute(this) + } + earlyAfterEvaluates = null +} + +tasks.register("printTaskGraph") { + doLast { + fun getTask(task: Any): Either { + 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) { + 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()) + } +} \ No newline at end of file diff --git a/convention/src/main/kotlin/jf.codegen.gradle.kts b/convention/src/main/kotlin/jf.codegen.gradle.kts index bafefb8..17576f1 100644 --- a/convention/src/main/kotlin/jf.codegen.gradle.kts +++ b/convention/src/main/kotlin/jf.codegen.gradle.kts @@ -1,31 +1,4 @@ -import io.gitlab.jfronny.scripts.* - plugins { - java + id("jf.java") } - -extra["codeGenerators"] = LinkedHashMap() - -val jfCodegen by tasks.registering { - doLast { - val generators = project.extra["codeGenerators"] as LinkedHashMap - 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) } \ No newline at end of file +//TODO remove this deprecated plugin in the next release \ No newline at end of file diff --git a/convention/src/main/kotlin/jf.earlyafterevaluate.gradle.kts b/convention/src/main/kotlin/jf.earlyafterevaluate.gradle.kts index 1d2161b..b324de8 100644 --- a/convention/src/main/kotlin/jf.earlyafterevaluate.gradle.kts +++ b/convention/src/main/kotlin/jf.earlyafterevaluate.gradle.kts @@ -1,10 +1,4 @@ -import io.gitlab.jfronny.scripts.* - -earlyAfterEvaluates = ArrayList() - -afterEvaluate { - earlyAfterEvaluates!!.forEach { - it.execute(this) - } - earlyAfterEvaluates = null -} \ No newline at end of file +plugins { + id("jf.base") +} +//TODO remove this deprecated plugin in the next release \ No newline at end of file diff --git a/convention/src/main/kotlin/jf.java.gradle.kts b/convention/src/main/kotlin/jf.java.gradle.kts new file mode 100644 index 0000000..ed1b2e4 --- /dev/null +++ b/convention/src/main/kotlin/jf.java.gradle.kts @@ -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() + +val jfCodegen by tasks.registering { + doLast { + val generators = project.extra["codeGenerators"] as LinkedHashMap + 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) } \ No newline at end of file diff --git a/convention/src/main/kotlin/jf.manifold.gradle.kts b/convention/src/main/kotlin/jf.manifold.gradle.kts index f0a1424..4ca7e91 100644 --- a/convention/src/main/kotlin/jf.manifold.gradle.kts +++ b/convention/src/main/kotlin/jf.manifold.gradle.kts @@ -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") diff --git a/convention/src/main/kotlin/jf.taskgraph.gradle.kts b/convention/src/main/kotlin/jf.taskgraph.gradle.kts index 411c8db..b324de8 100644 --- a/convention/src/main/kotlin/jf.taskgraph.gradle.kts +++ b/convention/src/main/kotlin/jf.taskgraph.gradle.kts @@ -1,36 +1,4 @@ -import io.gitlab.jfronny.scripts.* - plugins { - base -} - -tasks.register("printTaskGraph") { - doLast { - fun getTask(task: Any): Either { - 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) { - 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 \ No newline at end of file diff --git a/jfmod/src/main/kotlin/jfmod.module.gradle.kts b/jfmod/src/main/kotlin/jfmod.module.gradle.kts index 58392b8..dde0662 100644 --- a/jfmod/src/main/kotlin/jfmod.module.gradle.kts +++ b/jfmod/src/main/kotlin/jfmod.module.gradle.kts @@ -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)