LibJF/build.gradle
2021-04-11 20:23:57 +02:00

116 lines
3.2 KiB
Groovy

import groovy.json.JsonOutput
import groovy.json.JsonSlurper
import proguard.gradle.ProGuardTask
import net.fabricmc.loom.task.RunClientTask
import net.fabricmc.loom.task.RunServerTask
buildscript {
repositories {
mavenLocal()
google()
}
dependencies {
classpath 'com.guardsquare:proguard-gradle:7.0.1'
}
}
plugins {
id 'fabric-loom' version '0.7-SNAPSHOT'
id 'maven-publish'
}
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
archivesBaseName = project.archives_base_name
version = project.mod_version
group = project.maven_group
repositories {
maven { url = 'https://maven.terraformersmc.com/'; name = "ModMenu" }
maven { url "https://maven.shedaniel.me/" }
}
sourceSets {
testmod {
compileClasspath += main.compileClasspath + main.output
runtimeClasspath += main.runtimeClasspath + main.output
}
}
task runTestmodClient(type: RunClientTask) {
classpath sourceSets.testmod.runtimeClasspath
}
task runTestmodServer(type: RunServerTask) {
classpath sourceSets.testmod.runtimeClasspath
}
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}"
// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
// You may need to force-disable transitiveness on them.
modImplementation "com.terraformersmc:modmenu:1.16.9"
include modImplementation("me.shedaniel.cloth:cloth-config-lite-fabric:1.0.4")
}
processResources {
inputs.property "version", project.version
from(sourceSets.main.resources.srcDirs) {
include "fabric.mod.json"
expand "version": project.version
}
from(sourceSets.main.resources.srcDirs) {
exclude "fabric.mod.json"
}
doLast {
fileTree(dir: outputs.files.asPath, include: "**/*.json").each {
File file -> file.text = JsonOutput.toJson(new JsonSlurper().parse(file))
}
}
}
def proguardJarOut = file(jar.archiveFile.get().getAsFile().absolutePath.replace(".jar", "-min.jar"))
task proguardJar(type: ProGuardTask, dependsOn: jar) {
configuration './proguard.conf'
verbose
injars jar.archiveFile.get().getAsFile()
outjars proguardJarOut
libraryjars files(configurations.compileClasspath)
printmapping 'out.map'
}
tasks.remapJar {
input.set proguardJarOut
archiveClassifier.set null
dependsOn proguardJar
}
// ensure that the encoding is set to UTF-8, no matter what the system default is
// this fixes some edge cases with special characters not displaying correctly
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
tasks.withType(JavaCompile) {
options.encoding = "UTF-8"
}
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present.
// If you remove this task, sources will not be generated.
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = "sources"
from sourceSets.main.allSource
}
jar {
from "LICENSE"
}