blob: cc13373d54b225c5bf63e2220d237135651bbe22 [file] [log] [blame] [raw]
buildscript {
dependencies {
classpath 'org.jdom:jdom2:2.0.6'
classpath 'org.ow2.asm:asm:5.1'
classpath 'org.ow2.asm:asm-commons:5.1'
classpath 'commons-io:commons-io:2.5'
classpath 'org.apache.ant:ant:1.9.7'
classpath 'org.codehaus.plexus:plexus-utils:3.0.24'
classpath 'org.vafer:jdependency:1.1'
classpath files('gradle/plugins/shadowPlugin.jar')
}
}
plugins {
id 'java'
id 'de.undercouch.download' version '3.1.1'
}
apply plugin: com.github.jengelman.gradle.plugins.shadow.ShadowPlugin
tasks.withType(AbstractCompile) {
classpath += configurations.shadow
}
group 'protocolsupport'
version '4.27'
sourceCompatibility = 1.8
import de.undercouch.gradle.tasks.download.Download
File dllibs = new File('dllibs')
dllibs.mkdirs()
File gen = new File('gen')
gen.deleteDir();
gen.mkdirs();
task updateLibs(type: Download) {
src([
'https://yivesmirror.com/files/spigot/spigot-1.12.1-R0.1-SNAPSHOT-b1378.jar',
'https://repo.glowstone.net/repository/internal/net/glowstone/glowstone/2017.7.0-SNAPSHOT/glowstone-2017.7.0-20170703.092618-15.jar'
])
dest dllibs
onlyIfNewer true
overwrite true
}
compileJava.dependsOn(clean)
compileJava.dependsOn(updateLibs)
compileJava.finalizedBy(test)
sourceSets {
main {
java {
srcDirs = ['src']
}
resources {
srcDirs = ['resources']
}
}
test {
java {
srcDirs = ['tests']
}
}
}
task generateLocaleList(type: DefaultTask) << {
ArrayList<String> locales = new ArrayList<String>();
for (String filename : new File(sourceSets.main.resources.srcDirs.iterator().next(), "resources/i18n").list()) {
String[] split = filename.split("[.]");
if (split.length == 2 && split[1].equals("lang")) {
locales.add(split[0]);
}
}
File languageslist = new File(gen, "resources/i18n/languages");
languageslist.getParentFile().mkdirs();
languageslist.createNewFile();
PrintWriter writer = new PrintWriter(languageslist);
for (String locale : locales) {
writer.println(locale);
}
writer.close();
}
task generateInfo(type: DefaultTask) << {
Properties properties = new Properties();
properties.setProperty("buildtime", new Date().format("yyyy.MM.dd 'at' HH:mm:ss z"));
properties.setProperty("buildhost", System.getProperty("protocolsupport.buildhost", "unknown"));
properties.setProperty("buildnumber", System.getProperty("protocolsupport.buildnumber", "unknown"));
File buildinfo = new File(gen, "resources/buildinfo");
buildinfo.getParentFile().mkdirs();
buildinfo.createNewFile();
properties.store(new FileOutputStream(buildinfo), "Build info");
}
repositories {
mavenCentral()
}
dependencies {
shadow files('buildprocessor/BuildProcessor.jar', new File(dllibs, 'spigot-1.12.1-R0.1-SNAPSHOT-b1378.jar'), new File(dllibs, 'glowstone-2017.7.0-20170703.092618-15.jar'))
compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0'
compile group: 'net.sf.trove4j', name: 'trove4j', version: '3.0.3'
compile group: 'com.google.code.gson', name: 'gson', version: '2.8.0'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
shadowJar {
doFirst {
new File(destinationDir, archiveName).delete()
}
from sourceSets.main.java.srcDirs
from 'LICENSE'
from gen
minimizeJar = true
destinationDir = file('target')
archiveName = 'ProtocolSupport.jar'
exclude 'META-INF/**'
relocate 'org.apache', 'protocolsupport.libs.org.apache'
relocate 'gnu.trove', 'protocolsupport.libs.gnu.trove'
relocate 'com.google.gson', 'protocolsupport.libs.com.google.gson'
}
shadowJar.dependsOn(generateInfo)
shadowJar.dependsOn(generateLocaleList)
jar.enabled = false
jar.finalizedBy(shadowJar)