/* * Hello Minecraft! Launcher. * Copyright (C) 2013 huangyuhui * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see {http://www.gnu.org/licenses/}. */ import java.util.jar.JarFile import java.util.jar.Pack200 import java.util.zip.GZIPOutputStream apply plugin: 'java' apply plugin: 'maven' //sourceCompatibility = '1.7' [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' repositories { mavenCentral(); } buildscript { repositories { mavenCentral(); } } dependencies { // Adding dependencies here will add the dependencies to each subproject. compile 'com.google.code.gson:gson:2.2.4' // Apache License 2.0 } task sourcesJar(type: Jar, dependsOn: classes, description: 'Creates a jar from the source files.') { classifier = 'sources' from sourceSets.main.allSource } artifacts { archives jar archives sourcesJar } task createFolders(description: 'Creates the source folders if they do not exist.') doLast { sourceSets*.allSource*.srcDirs*.each { File srcDir -> if (!srcDir.isDirectory()) { println "Creating source folder: ${srcDir}" srcDir.mkdirs() } } } task makeExecutable(dependsOn: jar) << { ext { jar.classifier = '' makeExecutableinjar = jar.archivePath jar.classifier = '' makeExecutableoutjar = jar.archivePath jar.classifier = '' } def loc = new File(project.buildDir, "libs/" + makeExecutableoutjar.getName().substring(0, makeExecutableoutjar.getName().length()-4)+".exe") def fos = new FileOutputStream(loc) def is = new FileInputStream(new File(project.buildDir, '../HMCLauncher.exe')) int read def bytes = new byte[8192] while((read = is.read(bytes)) != -1) fos.write(bytes, 0, read); is.close() is = new FileInputStream(makeExecutableinjar) while((read = is.read(bytes)) != -1) fos.write(bytes, 0, read); is.close() fos.close() } task makePackGZ(dependsOn: jar) << { ext { jar.classifier = '' makeExecutableinjar = jar.archivePath jar.classifier = '' makeExecutableoutjar = jar.archivePath jar.classifier = '' } def loc = new File(project.buildDir, "libs/" + makeExecutableoutjar.getName().substring(0, makeExecutableoutjar.getName().length()-4)+".pack.gz") def os = new GZIPOutputStream(new FileOutputStream(loc)) Pack200.newPacker().pack(new JarFile(makeExecutableinjar), os) os.close() }