diff --git a/build.gradle.kts b/build.gradle.kts index 7342371..5dfd3f0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,16 +15,6 @@ architectury.common(stonecutter.tree.branches.mapNotNull { else it.prop("loom.platform") }) -dependencies { - minecraft("com.mojang:minecraft:$minecraft") - mappings("net.fabricmc:yarn:$minecraft+build.${mod.dep("yarn_build")}:v2") - modImplementation("net.fabricmc:fabric-loader:${mod.dep("fabric_loader")}") - "io.github.llamalad7:mixinextras-common:${mod.dep("mixin_extras")}".let { - annotationProcessor(it) - implementation(it) - } -} - loom { accessWidenerPath = rootProject.file("src/main/resources/template.accesswidener") @@ -35,6 +25,16 @@ loom { } } +dependencies { + minecraft("com.mojang:minecraft:$minecraft") + mappings("net.fabricmc:yarn:$minecraft+build.${mod.dep("yarn_build")}:v2") + modImplementation("net.fabricmc:fabric-loader:${mod.dep("fabric_loader")}") + "io.github.llamalad7:mixinextras-common:${mod.dep("mixin_extras")}".let { + annotationProcessor(it) + implementation(it) + } +} + java { withSourcesJar() val java = if (stonecutter.eval(minecraft, ">=1.20.5")) @@ -46,4 +46,4 @@ java { tasks.build { group = "versioned" description = "Must run through 'chiseledBuild'" -} \ No newline at end of file +} diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts index e38514a..62e4a5f 100644 --- a/fabric/build.gradle.kts +++ b/fabric/build.gradle.kts @@ -2,6 +2,7 @@ plugins { + `maven-publish` id("dev.architectury.loom") id("architectury-plugin") id("com.github.johnrengelman.shadow") @@ -38,15 +39,6 @@ configurations { get("developmentFabric").extendsFrom(commonBundle) } -dependencies { - minecraft("com.mojang:minecraft:$minecraft") - mappings("net.fabricmc:yarn:$minecraft+build.${common.mod.dep("yarn_build")}:v2") - modImplementation("net.fabricmc:fabric-loader:${mod.dep("fabric_loader")}") - - commonBundle(project(common.path, "namedElements")) { isTransitive = false } - shadowBundle(project(common.path, "transformProductionFabric")) { isTransitive = false } -} - loom { decompilers { get("vineflower").apply { // Adds names to lambdas - useful for mixins @@ -54,6 +46,8 @@ loom { } } + accessWidenerPath = common.loom.accessWidenerPath + runConfigs.all { isIdeConfigGenerated = true runDir = "../../../run" @@ -61,6 +55,16 @@ loom { } } +dependencies { + minecraft("com.mojang:minecraft:$minecraft") + mappings("net.fabricmc:yarn:$minecraft+build.${common.mod.dep("yarn_build")}:v2") + modImplementation("net.fabricmc:fabric-loader:${mod.dep("fabric_loader")}") + + commonBundle(project(common.path, "namedElements")) { isTransitive = false } + shadowBundle(project(common.path, "transformProductionFabric")) { isTransitive = false } +} + + java { withSourcesJar() val java = if (stonecutter.eval(minecraft, ">=1.20.5")) @@ -69,9 +73,19 @@ java { sourceCompatibility = java } -tasks.shadowJar { - configurations = listOf(shadowBundle) - archiveClassifier = "dev-shadow" +publishing { + publications { + create("mod") { + artifact(tasks.remapJar) + artifact(tasks.remapSourcesJar) + artifactId = mod.id + group = mod.group + } + } +} + +tasks.jar { + archiveClassifier = "dev" } tasks.remapJar { @@ -81,8 +95,9 @@ tasks.remapJar { dependsOn(tasks.shadowJar) } -tasks.jar { - archiveClassifier = "dev" +tasks.shadowJar { + configurations = listOf(shadowBundle) + archiveClassifier = "dev-shadow" } tasks.processResources { @@ -105,4 +120,4 @@ tasks.register("buildAndCollect") { from(tasks.remapJar.get().archiveFile, tasks.remapSourcesJar.get().archiveFile) into(rootProject.layout.buildDirectory.file("libs/${mod.version}/$loader")) dependsOn("build") -} \ No newline at end of file +} diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index f2bc2ec..e61ad93 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -1,6 +1,7 @@ @file:Suppress("UnstableApiUsage") plugins { + `maven-publish` id("dev.architectury.loom") id("architectury-plugin") id("com.github.johnrengelman.shadow") @@ -37,29 +38,13 @@ configurations { get("developmentForge").extendsFrom(commonBundle) } -repositories { - maven("https://maven.minecraftforge.net") -} - -dependencies { - minecraft("com.mojang:minecraft:$minecraft") - mappings("net.fabricmc:yarn:$minecraft+build.${common.mod.dep("yarn_build")}:v2") - "forge"("net.minecraftforge:forge:$minecraft-${common.mod.dep("forge_loader")}") - "io.github.llamalad7:mixinextras-forge:${mod.dep("mixin_extras")}".let { - implementation(it) - include(it) - } - - commonBundle(project(common.path, "namedElements")) { isTransitive = false } - shadowBundle(project(common.path, "transformProductionForge")) { isTransitive = false } -} - loom { decompilers { get("vineflower").apply { // Adds names to lambdas - useful for mixins options.put("mark-corresponding-synthetics", "1") } } + accessWidenerPath = common.loom.accessWidenerPath forge.convertAccessWideners = true forge.mixinConfigs( @@ -74,6 +59,23 @@ loom { } } +repositories { + maven("https://maven.minecraftforge.net") +} + +dependencies { + minecraft("com.mojang:minecraft:$minecraft") + mappings("net.fabricmc:yarn:$minecraft+build.${common.mod.dep("yarn_build")}:v2") + "forge"("net.minecraftforge:forge:$minecraft-${common.mod.dep("forge_loader")}") + "io.github.llamalad7:mixinextras-forge:${mod.dep("mixin_extras")}".let { + implementation(it) + include(it) + } + + commonBundle(project(common.path, "namedElements")) { isTransitive = false } + shadowBundle(project(common.path, "transformProductionForge")) { isTransitive = false } +} + java { withSourcesJar() val java = if (stonecutter.eval(minecraft, ">=1.20.5")) @@ -82,6 +84,17 @@ java { sourceCompatibility = java } +publishing { + publications { + create("mod") { + artifact(tasks.remapJar) + artifact(tasks.remapSourcesJar) + artifactId = mod.id + group = mod.group + } + } +} + tasks.jar { archiveClassifier = "dev" } diff --git a/neoforge/build.gradle.kts b/neoforge/build.gradle.kts index fc6c7d2..2a78941 100644 --- a/neoforge/build.gradle.kts +++ b/neoforge/build.gradle.kts @@ -1,6 +1,7 @@ @file:Suppress("UnstableApiUsage") plugins { + `maven-publish` id("dev.architectury.loom") id("architectury-plugin") id("com.github.johnrengelman.shadow") @@ -37,6 +38,22 @@ configurations { get("developmentNeoForge").extendsFrom(commonBundle) } +loom { + decompilers { + get("vineflower").apply { // Adds names to lambdas - useful for mixins + options.put("mark-corresponding-synthetics", "1") + } + } + + accessWidenerPath = common.loom.accessWidenerPath + + runConfigs.all { + isIdeConfigGenerated = true + runDir = "../../../run" + vmArgs("-Dmixin.debug.export=true") + } +} + repositories { maven("https://maven.neoforged.net/releases/") } @@ -59,20 +76,6 @@ dependencies { shadowBundle(project(common.path, "transformProductionNeoForge")) { isTransitive = false } } -loom { - decompilers { - get("vineflower").apply { // Adds names to lambdas - useful for mixins - options.put("mark-corresponding-synthetics", "1") - } - } - - runConfigs.all { - isIdeConfigGenerated = true - runDir = "../../../run" - vmArgs("-Dmixin.debug.export=true") - } -} - java { withSourcesJar() val java = if (stonecutter.eval(minecraft, ">=1.20.5")) @@ -81,6 +84,17 @@ java { sourceCompatibility = java } +publishing { + publications { + create("mod") { + artifact(tasks.remapJar) + artifact(tasks.remapSourcesJar) + artifactId = mod.id + group = mod.group + } + } +} + tasks.jar { archiveClassifier = "dev" } diff --git a/stonecutter.gradle.kts b/stonecutter.gradle.kts index d9874b6..d8b9529 100644 --- a/stonecutter.gradle.kts +++ b/stonecutter.gradle.kts @@ -1,4 +1,5 @@ plugins { + `maven-publish` id("dev.kikugie.stonecutter") id("dev.architectury.loom") version "1.7-SNAPSHOT" apply false id("architectury-plugin") version "3.4-SNAPSHOT" apply false @@ -13,15 +14,28 @@ stonecutter registerChiseled tasks.register("chiseledBuild", stonecutter.chisele ofTask("buildAndCollect") } -// Builds loader-specific versions into `build/libs/{mod.version}/{loader}` +stonecutter registerChiseled tasks.register("chiseledPublish", stonecutter.chiseled) { + group = "project" + ofTask("publish") +} + for (it in stonecutter.tree.branches) { if (it.id.isEmpty()) continue val loader = it.id.upperCaseFirst() + + // Builds loader-specific versions into `build/libs/{mod.version}/{loader}` stonecutter registerChiseled tasks.register("chiseledBuild$loader", stonecutter.chiseled) { group = "project" versions { branch, _ -> branch == it.id } ofTask("buildAndCollect") } + + // Publishes loader-specific versions + stonecutter registerChiseled tasks.register("chiseledPublish$loader", stonecutter.chiseled) { + group = "project" + versions { branch, _ -> branch == it.id } + ofTask("publish") + } } // Runs active versions for each loader @@ -34,3 +48,22 @@ for (it in stonecutter.tree.nodes) { dependsOn("run$type") } } + +subprojects { + apply { + plugin("maven-publish") + plugin("java") + } + + repositories { + mavenCentral() + // define repositories used by all projects here + } + + publishing { + repositories { + // define your publishing repositories here + mavenLocal() + } + } +}