From a95593bacedc07c87c50cc2050b3a93ff434808e Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Wed, 21 Sep 2016 13:52:54 +0100 Subject: [PATCH] Generate tiny mapping files --- build.gradle | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/build.gradle b/build.gradle index 74e6188f91..c0eb596ee5 100644 --- a/build.gradle +++ b/build.gradle @@ -29,6 +29,11 @@ import com.google.common.hash.Hashing import com.google.common.io.Files import net.fabricmc.blendingjar.JarMerger import groovy.util.XmlSlurper +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.zip.GZIPOutputStream; +import java.io.File; boolean validateChecksum(File file, String checksum) { if (file != null) { @@ -135,3 +140,57 @@ task build(type: Zip) { archiveName "pomf-enigma-${pomfVersion}.zip" destinationDir(file("build/libs")) } + +task buildTiny << { + def cacheFiles = new File(".gradle/weave") + if (!cacheFiles.exists()) cacheFiles.mkdirs() + + def mavenMetadata = new File(cacheFiles, "maven-metadata.xml") + + logger.lifecycle(":downloading weave metadata") + FileUtils.copyURLToFile(new URL("http://maven.fabricmc.net/net/fabricmc/weave/maven-metadata.xml"), mavenMetadata) + + def metadata = new XmlSlurper().parseText(FileUtils.readFileToString(mavenMetadata)) + def weaveVersion = metadata.versioning.release + + def weave = new File(cacheFiles, "${weaveVersion}.jar") + + if(!weave.exists()){ + logger.lifecycle(":downloading weave") + FileUtils.copyURLToFile(new URL("http://maven.fabricmc.net/net/fabricmc/weave/${weaveVersion}/weave-${weaveVersion}.jar"), weave) + } + + + logger.lifecycle(":generating tiny mappings") + + ant.java(jar: weave.getAbsolutePath(), fork: true, spawn: false) { + arg(value : "tinyify") + arg(value: new File("${minecraft_version}-merged.jar").getAbsolutePath()) + arg(value: new File("mappings").getAbsolutePath()) + arg(value : "mappings.tiny") + arg(value : "mojang") + arg(value : "pomf") + } + + logger.lifecycle(":compressing tiny mappings") + + def buffer = new byte[1024] + def outputFile = new File("build/libs/pomf-tiny-${pomfVersion}.gz") + def fileOutputStream = new FileOutputStream(outputFile) + def outputStream = new GZIPOutputStream(fileOutputStream) + def inputFile = new File("mappings.tiny") + def fileInputStream = new FileInputStream(inputFile) + + def length; + while ((length = fileInputStream.read(buffer)) > 0) { + outputStream.write(buffer, 0, length); + } + + fileInputStream.close() + outputStream.finish() + outputStream.close() + inputFile.delete() +} + +tasks.buildTiny.dependsOn "mergeJars" +tasks.build.dependsOn "buildTiny"