Step 1 of #8. 1.21.11's version-specific code moves from versions/1.21.11/src to the top-level src/, built by Stonecutter as the project :1.21.11. The other versions still build from their own copies as :mc-<v> until they're folded in. - settings.gradle: applies Stonecutter (Groovy controller) with stonecutterVersions = ["1.21.11"] and skips those folders when including the old mc-<v> projects. - The old root build.gradle becomes stonecutter.gradle (the root project's script, with the shared repositories, common wiring and buildAll), and 1.21.11's build.gradle becomes the root build.gradle that Stonecutter runs for each version. versions/1.21.11 keeps its gradle.properties and run/. - The jar has the same 415 entries, fabric.mod.json and mixin configs as before; the only class differences also appear when rebuilding an untouched version today. - scripts/port.sh treats src/ as the active Stonecutter version, so changes port between it and the old copies both ways. - README and VERSION_GUIDE describe the layout, version comments and how to add a version. Co-Authored-By: Claude Opus 5.5 <[email protected]>
101 lines
3.2 KiB
Groovy
101 lines
3.2 KiB
Groovy
plugins {
|
|
id 'net.fabricmc.fabric-loom-remap' version "${loom_version}"
|
|
id 'maven-publish'
|
|
}
|
|
|
|
version = "${project.mod_version}+${project.minecraft_version}"
|
|
group = project.maven_group
|
|
|
|
base {
|
|
archivesName = project.archives_base_name
|
|
}
|
|
|
|
repositories {
|
|
maven { name = "Selimaj"; url = 'https://git.selimaj.dev/api/packages/selimaj-dev/maven' }
|
|
}
|
|
|
|
dependencies {
|
|
// To change the versions see the gradle.properties file
|
|
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
|
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
|
|
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
|
|
|
// Fabric API. This is technically optional, but you probably want it anyway.
|
|
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
|
|
|
|
// Saturn's emote library (limb bending, Emotecraft emotes)
|
|
include modImplementation("org.saturnclient:emotes-fabric:${project.emotes_version}+${project.minecraft_version}")
|
|
|
|
implementation project(":common")
|
|
|
|
include implementation("dev.selimaj:session-java:0.2.0")
|
|
include implementation("de.javagl:obj:0.4.0")
|
|
include implementation("com.formdev:svgSalamander:1.1.4")
|
|
include implementation("com.fasterxml.jackson.core:jackson-databind:2.17.0")
|
|
include implementation("com.fasterxml.jackson.core:jackson-annotations:2.17.0")
|
|
include implementation("com.fasterxml.jackson.core:jackson-core:2.17.0")
|
|
}
|
|
|
|
/*
|
|
* ================================================================
|
|
* Resource Processing
|
|
* ================================================================
|
|
* Injects version values into fabric.mod.json.
|
|
*/
|
|
processResources {
|
|
inputs.property "version", project.version
|
|
inputs.property "minecraft_version", project.minecraft_version
|
|
inputs.property "loader_version", project.loader_version
|
|
filteringCharset "UTF-8"
|
|
|
|
filesMatching("fabric.mod.json") {
|
|
expand(
|
|
"version": project.version,
|
|
"minecraft_version": project.minecraft_version,
|
|
"loader_version": project.loader_version
|
|
)
|
|
}
|
|
}
|
|
|
|
tasks.withType(JavaCompile).configureEach {
|
|
it.options.release = 21
|
|
}
|
|
|
|
java {
|
|
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
|
|
// if it is present.
|
|
// If you remove this line, sources will not be generated.
|
|
withSourcesJar()
|
|
|
|
sourceCompatibility = JavaVersion.VERSION_21
|
|
targetCompatibility = JavaVersion.VERSION_21
|
|
}
|
|
|
|
jar {
|
|
inputs.property "archivesName", project.base.archivesName
|
|
|
|
from("LICENSE") {
|
|
rename { "${it}_${inputs.properties.archivesName}"}
|
|
}
|
|
|
|
from project(":common").sourceSets.main.output
|
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
}
|
|
|
|
// configure the maven publication
|
|
publishing {
|
|
publications {
|
|
create("mavenJava", MavenPublication) {
|
|
artifactId = project.archives_base_name
|
|
from components.java
|
|
}
|
|
}
|
|
|
|
// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
|
|
repositories {
|
|
// Add repositories to publish to here.
|
|
// Notice: This block does NOT have the same function as the block in the top level.
|
|
// The repositories here will be used for publishing your artifact, not for
|
|
// retrieving dependencies.
|
|
}
|
|
} |