ModernFix/neoforge/build.gradle
2024-03-21 14:10:56 -04:00

126 lines
3.8 KiB
Groovy

plugins {
id "com.github.johnrengelman.shadow"
id "modernfix.mod-common-conventions"
id "modernfix.platform-conventions"
}
architectury {
platformSetupLoomIde()
neoForge()
}
configurations {
common
shadowCommon // Don't use shadow from the shadow plugin since it *excludes* files.
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
}
def extraModsDir = "extra-mods"
repositories {
exclusiveContent {
forRepository {
flatDir {
name "extra-mods"
dir file(extraModsDir)
}
}
filter {
includeGroup "extra-mods"
}
}
maven { url "https://maven.neoforged.net" }
}
dependencies {
neoForge "net.neoforged:neoforge:${rootProject.forge_version}"
// Remove the next line if you don't want to depend on the API
// modApi "me.shedaniel:architectury-forge:${rootProject.architectury_version}"
modCompileOnly("curse.maven:refinedstorage-243076:${refined_storage_version}")
modCompileOnly("curse.maven:jeresources-240630:3951643")
modCompileOnly("me.shedaniel:RoughlyEnoughItems-forge:${rei_version}") { transitive false }
modCompileOnly("dev.latvian.mods:kubejs-forge:${kubejs_version}")
//modRuntimeOnly("curse.maven:ferritecore-429235:4441949")
modCompileOnly files("deps/ctm.jar")
modCompileOnly("curse.maven:supermartijncore-454372:4455391")
modCompileOnly("vazkii.patchouli:Patchouli:1.19.2-77")
// runtime remapping at home
for (extraModJar in fileTree(dir: extraModsDir, include: '*.jar')) {
def basename = extraModJar.name.substring(0, extraModJar.name.length() - ".jar".length())
def versionSep = basename.lastIndexOf('-')
assert versionSep != -1
def artifactId = basename.substring(0, versionSep)
def version = basename.substring(versionSep + 1)
modRuntimeOnly("extra-mods:$artifactId:$version")
}
common(project(path: ":common", configuration: "namedElements")) { transitive false }
shadowCommon(project(path: ":common", configuration: "transformProductionNeoForge")) { transitive = false }
shadowCommon(project(path: ":annotations"))
forgeRuntimeLibrary(project(path: ":annotations"))
}
processResources {
inputs.property "version", project.version
filesMatching("META-INF/mods.toml") {
expand "version": project.version
}
}
shadowJar {
exclude "fabric.mod.json"
exclude "architectury.common.json"
configurations = [project.configurations.shadowCommon]
archiveClassifier.set("dev-shadow")
}
remapJar {
input.set shadowJar.archiveFile
dependsOn shadowJar
archiveClassifier.set(null)
atAccessWideners.add "modernfix.accesswidener"
}
jar {
archiveClassifier.set("dev")
manifest {
attributes([
"Specification-Title" : "modernfix",
"Operative-Class" : "org.embeddedt.modernfix.agent.Agent",
//"Specification-Vendor": "modernfix authors",
"Specification-Version" : "1", // We are version 1 of ourselves
"Implementation-Title" : project.name,
"Implementation-Version" : project.jar.archiveVersion
//"Implementation-Vendor": "modernfix authors",
])
}
}
components.java {
withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) {
skip()
}
}
publishing {
publications {
mavenForge(MavenPublication) {
artifactId = rootProject.archives_base_name + "-" + project.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.
}
}