Files
antarchy-mirror/fabric/build.gradle
T

166 lines
6.4 KiB
Groovy

plugins {
id "com.github.johnrengelman.shadow" version "7.1.2"
}
architectury {
platformSetupLoomIde()
fabric()
}
configurations {
common
shadowCommon
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
developmentFabric.extendsFrom common
}
dependencies {
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings loom.officialMojangMappings()
modImplementation "net.fabricmc:fabric-loader:${project.fabric_loader_version}"
modApi "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
modImplementation "software.bernie.geckolib:geckolib-fabric-${project.minecraft_version}:${project.geckolib_version}"
compileOnly("curse.maven:intapi-${project.intapi_curseforge_id}:${project.intapi_curseforge_file_id_neoforge}")
// compileOnly("curse.maven:create-${project.create_curseforge_id_neoforge}:${project.create_curseforge_file_id_neoforge}")
// compileOnly("curse.maven:marvel-${project.marvel_curseforge_id}:${project.marvel_curseforge_file_id}")
// compileOnly("curse.maven:stellaris-${project.stellaris_curseforge_id}:${project.stellaris_curseforge_file_id}")
// compileOnly("curse.maven:aperture-${project.aperture_curseforge_id}:${project.aperture_curseforge_file_id}")
// compileOnly("curse.maven:inventory_pets-${project.inventory_pets_curseforge_id}:${project.inventory_pets_curseforge_file_id}")
// compileOnly("curse.maven:cataclysm-${project.cataclysm_curseforge_id}:${project.cataclysm_curseforge_file_id}")
// compileOnly("curse.maven:iaf-${project.iaf_curseforge_id}:${project.iaf_curseforge_file_id}")
// compileOnly("curse.maven:backpack-${project.backpack_curseforge_id}:${project.backpack_curseforge_file_id}")
// compileOnly("curse.maven:regions_unexplored-${project.regions_unexplored_curseforge_id}:${project.regions_unexplored_curseforge_file_id}")
compileOnly(files("$rootDir/infinite_dimensions_jars/infinity-2.7.1+1.21.1-neoforge.jar"))
compileOnly(files("$rootDir/infinite_dimensions_jars/infinity-2.7.1+1.21.1-neoforge-sources.jar"))
compileOnly(files("$rootDir/infinite_dimensions_jars/gravity-api-1.0.7-1.20.1.jar"))
// compileOnly(files("$rootDir/infinite_dimensions_jars/Cloro's Gravity Gun Mod (Release 1.3.1).jar"))
// compileOnly(files("$rootDir/infinite_dimensions_jars/VanillaBackport-neoforge-1.21.1-1.1.7.6.jar"))
// compileOnly(files("$rootDir/infinite_dimensions_jars/soul-fire-d-neoforge-1.21-6.1.0.jar"))
// compileOnly(files("$rootDir/infinite_dimensions_jars/prometheus-neoforge-1.21-1.2.5.jar"))
compileOnly(files("$rootDir/infinite_dimensions_jars/cloth-config-15.0.140-fabric.jar"))
compileOnly(files("$rootDir/infinite_dimensions_jars/sable-neoforge-1.21.1-2.0.3.jar"))
annotationProcessor "org.spongepowered:mixin:0.8.7:processor"
common(project(path: ':common', configuration: 'namedElements')) { transitive false }
shadowCommon(project(path: ':common', configuration: 'namedElements')) { transitive false }
}
loom {
mixin {
useLegacyMixinAp = true
defaultRefmapName = "antarchy.refmap.json"
}
mods {
"${mod_id}" {
sourceSet sourceSets.main
sourceSet project(':common').sourceSets.main
}
}
runs {
configureEach {
runDir('run')
ideConfigGenerated(true)
}
client {
client()
setConfigName('Fabric Client')
}
server {
server()
setConfigName('Fabric Server')
programArg('--nogui')
}
}
}
tasks.named('compileJava', JavaCompile) {
source(project(':common').sourceSets.main.allJava)
}
tasks.named('javadoc', Javadoc).configure {
source(project(':common').sourceSets.main.allJava)
}
tasks.named('sourcesJar', Jar) {
from(project(':common').sourceSets.main.allSource)
exclude "antarchy-common.mixins.json"
}
shadowJar {
exclude 'architectury.common.json'
configurations = [project.configurations.shadowCommon]
archiveClassifier.set('dev-shadow')
}
remapJar {
injectAccessWidener = true
input.set shadowJar.archiveFile
dependsOn shadowJar
archiveClassifier.set(null)
}
jar {
archiveClassifier.set('dev')
}
components.java {
withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) {
skip()
}
}
processResources {
inputs.property "version", project.version
inputs.property "minecraft_version", project.minecraft_version
inputs.property "fabric_loader_version", project.fabric_loader_version
inputs.property "mod_id", project.mod_id
inputs.property "mod_name", project.mod_name
inputs.property "mod_description", project.mod_description
inputs.property "mod_author", project.mod_author
inputs.property "license", project.license
inputs.property "homepage_url", project.homepage_url
inputs.property "issues_url", project.issues_url
inputs.property "sources_url", project.sources_url
inputs.property "logo_fabric", project.logo_fabric
from(project(':common').sourceSets.main.resources) {
exclude "antarchy-common.mixins.json"
}
// Fabric needs a refmap on the common mixin config, NeoForge only boots without one.
// Generate a fabric-only copy with the refmap injected so the shared file stays refmap-free.
def commonMixinConfig = project(':common').file('src/main/resources/antarchy-common.mixins.json')
inputs.file commonMixinConfig
doLast {
def json = new groovy.json.JsonSlurper().parse(commonMixinConfig)
json.put('refmap', 'antarchy.refmap.json')
new File(destinationDir, 'antarchy-common-fabric.mixins.json').text =
groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(json))
}
filesMatching("fabric.mod.json") {
expand(
version: project.version,
minecraft_version: project.minecraft_version,
fabric_loader_version: project.fabric_loader_version,
mod_id: project.mod_id,
mod_name: project.mod_name,
mod_description: project.mod_description,
mod_author: project.mod_author,
license: project.license,
homepage_url: project.homepage_url,
issues_url: project.issues_url,
sources_url: project.sources_url,
logo_fabric: project.logo_fabric
)
}
}