diff --git a/convention/src/main/kotlin/io/gitlab/jfronny/scripts/CodegenExt.kt b/convention/src/main/kotlin/io/gitlab/jfronny/scripts/CodegenExt.kt index 6851151..6362c45 100644 --- a/convention/src/main/kotlin/io/gitlab/jfronny/scripts/CodegenExt.kt +++ b/convention/src/main/kotlin/io/gitlab/jfronny/scripts/CodegenExt.kt @@ -7,6 +7,7 @@ import org.gradle.api.Action import org.gradle.api.Project import org.gradle.api.tasks.SourceSet import org.gradle.kotlin.dsl.extra +import org.gradle.kotlin.dsl.provideDelegate import java.lang.reflect.Type import java.util.function.Supplier import javax.lang.model.element.Element @@ -16,13 +17,13 @@ import javax.lang.model.type.DeclaredType import javax.lang.model.type.TypeMirror import javax.lang.model.util.Types -val Project.codegenDir get() = buildDir.resolve("generated/sources/jfCodegen") +val Project.codegenDir get() = layout.buildDirectory.dir("generated/sources/jfCodegen").get().asFile fun SourceSet.generate(project: Project, generate: Action) { - val generators = project.extra["codeGenerators"] as LinkedHashMap - val exists = generators.containsKey(name) + val codeGenerators: MutableMap by project.extra + val exists = codeGenerators.containsKey(name) val generator = ContentGenerator().runAction(generate) - generators[name] = if (exists) generators[name]!!.merge(generator.generate()) else generator.generate() + codeGenerators[name] = if (exists) codeGenerators[name]!!.merge(generator.generate()) else generator.generate() if (!exists) { java.srcDir(project.codegenDir.resolve("java/$name")) resources.srcDir(project.codegenDir.resolve("resources/$name")) @@ -87,7 +88,7 @@ class ContentGenerator { @JvmStatic private fun check(name: String, type: String, pattern: Regex) { - if (!pattern.matches(name)) throw IllegalArgumentException("$type \"$name\" is not a valid $type") + require(pattern.matches(name)) { "$type \"$name\" is not a valid $type" } } } } diff --git a/convention/src/main/kotlin/jf.java.gradle.kts b/convention/src/main/kotlin/jf.java.gradle.kts index ed1b2e4..ce09df3 100644 --- a/convention/src/main/kotlin/jf.java.gradle.kts +++ b/convention/src/main/kotlin/jf.java.gradle.kts @@ -6,13 +6,12 @@ plugins { `java-library` } -extra["codeGenerators"] = LinkedHashMap() +var codeGenerators: MutableMap? by extra(LinkedHashMap()) val jfCodegen by tasks.registering { doLast { - val generators = project.extra["codeGenerators"] as LinkedHashMap if (codegenDir.exists()) codegenDir.deleteRecursively() - generators.forEach { (name, generated) -> + codeGenerators!!.forEach { (name, generated) -> generated.classes.forEach { (filePath, content) -> val path = codegenDir.resolve("java").resolve(name).resolve(filePath) path.parentFile.mkdirs() @@ -24,7 +23,7 @@ val jfCodegen by tasks.registering { path.writeBytes(content) } } - project.extra["codeGenerators"] = null + codeGenerators = null } } diff --git a/jfmod/src/main/kotlin/jfmod.gradle.kts b/jfmod/src/main/kotlin/jfmod.gradle.kts index 83da826..2dd9713 100644 --- a/jfmod/src/main/kotlin/jfmod.gradle.kts +++ b/jfmod/src/main/kotlin/jfmod.gradle.kts @@ -26,7 +26,7 @@ val moveArtifacts by tasks.registering(Copy::class) { dependsOn(source.value) } - into(buildDir.resolve("artifacts")) + into(layout.buildDirectory.dir("artifacts")) } tasks.deployDebug.dependsOn(moveArtifacts) diff --git a/lom/src/main/kotlin/lom.gradle.kts b/lom/src/main/kotlin/lom.gradle.kts index 6d91777..8dd00b5 100644 --- a/lom/src/main/kotlin/lom.gradle.kts +++ b/lom/src/main/kotlin/lom.gradle.kts @@ -1,13 +1,7 @@ import io.gitlab.jfronny.scripts.* import net.fabricmc.loom.task.PrepareJarRemapTask import net.fabricmc.loom.task.RemapJarTask -import org.gradle.api.publish.maven.MavenPublication -import org.gradle.api.publish.tasks.GenerateModuleMetadata -import org.gradle.api.tasks.bundling.AbstractArchiveTask -import org.gradle.api.tasks.bundling.Jar -import org.gradle.api.tasks.compile.JavaCompile import org.gradle.kotlin.dsl.* -import java.io.File plugins { id("jf.java") @@ -17,7 +11,7 @@ plugins { id("com.github.johnrengelman.shadow") } -val devlibs = File(project.buildDir, "devlibs") +val devlibs = project.layout.buildDirectory.dir("devlibs").get().asFile // Configure loom for stricter dev env loom {