Build with loom-back-compat and a Java toolchain per version
Prepares the build for 26.x, which ships unobfuscated and needs Java 25 (#39): - loom-back-compat applies the remapping Loom to 1.21.x and would apply the plain one to 26.x. loom_version becomes loomx.loom_version. - Each version compiles with its Java toolchain (21 for 1.21.x, 25 for 26.x), and the mixin configs take their compatibility level from it. The foojay resolver downloads a missing JDK; CI installs 21 and 25. - buildAll collects remapJar's output, or jar's where there's nothing to remap. - fabric.mod.json depends on fabric-api, Fabric API's mod id; 26.x's jar no longer provides the old "fabric" alias. Nothing changes for the 1.21.x jars. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
+10
-5
@@ -69,17 +69,22 @@ subprojects {
|
||||
|
||||
tasks.register("buildAll") {
|
||||
group = "build"
|
||||
description = "Builds every Minecraft version's remapped jar and collects them in build/allJars"
|
||||
description = "Builds every Minecraft version's mod jar and collects them in build/allJars"
|
||||
|
||||
val remapJars = subprojects.flatMap { it.tasks.matching { task -> task.name == "remapJar" } }
|
||||
dependsOn(remapJars)
|
||||
// The mod jar is remapJar's output for 1.21.x, and jar's for 26.1+, which isn't obfuscated.
|
||||
val modJars = subprojects.filter { it.name != "common" }.flatMap { project ->
|
||||
val unobfuscated = project.name.substringBefore('.').toInt() >= 26
|
||||
val task = if (unobfuscated) "jar" else "remapJar"
|
||||
project.tasks.matching { it.name == task }
|
||||
}
|
||||
dependsOn(modJars)
|
||||
|
||||
doLast {
|
||||
val outputDir = layout.buildDirectory.dir("allJars").get().asFile
|
||||
outputDir.mkdirs()
|
||||
remapJars.map { (it as AbstractArchiveTask).archiveFile.get().asFile }
|
||||
modJars.map { (it as AbstractArchiveTask).archiveFile.get().asFile }
|
||||
.filter { it.exists() && !it.name.contains("sources") }
|
||||
.forEach { it.copyTo(outputDir.resolve(it.name), overwrite = true) }
|
||||
println("All remapped jars collected in: $outputDir")
|
||||
println("All mod jars collected in: $outputDir")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user