Skip to content

Instantly share code, notes, and snippets.

@Unh0lyTigg
Created March 13, 2016 05:28
Show Gist options
  • Save Unh0lyTigg/c6d503ea1dec3a10a368 to your computer and use it in GitHub Desktop.
Save Unh0lyTigg/c6d503ea1dec3a10a368 to your computer and use it in GitHub Desktop.
import java.nio.file.Files
import java.nio.file.Paths
def trymkdir(folder) {
def f = new File(project.projectDir, folder)
if (!f.exists()) {
f.mkdirs()
f.mkdir()
}
}
def copyFile(f, t) {
if (!Files.exists(t)) {
Files.copy(f, t)
}
}
def copyDir(f, t) {
def fFile = f.toFile()
for (sub in fFile.listFiles()) {
def tSub = t.resolve(sub.getName())
def subP = sub.toPath()
if (sub.isDirectory()) {
copyDir(subP, tSub)
} else {
copyFile(subP, tSub)
}
}
}
def deleteDir(dir) {
def dirF = dir.toFile()
for (sub in dirF.listFiles()) {
if (sub.isDirectory()) {
deleteDir(sub.toPath())
} else {
Files.delete(sub.toPath())
}
}
Files.delete(dir)
}
def getLwjglNightly(version) {
if (Files.exists(project.projectDir.toPath().resolve('deps/lwjgl/nightly/'+version)) && !version.equals('latest')) {
return
}
trymkdir('depbuild/lwjgl/nightly/'+version)
trymkdir('depbuild/lwjgl/nightly/'+version+'/download')
trymkdir('deps/lwjgl/nightly/'+version)
trymkdir('deps/lwjgl/nightly/'+version+'/natives/')
ant.get(src: 'http://build.lwjgl.org/nightly/lwjgl.zip', dest: 'depbuild/lwjgl/nightly/'+version+'/download')
ant.unzip(src: 'depbuild/lwjgl/nightly/'+version+'/download/lwjgl.zip', dest: 'depbuild/lwjgl/nightly/'+version+'/unzipped')
def base = project.projectDir.toPath()
def depBfolder = base.resolve('depbuild/lwjgl/nightly/'+version+'/unzipped')
def depfolder = base.resolve('deps/lwjgl/nightly/'+version)
copyFile(depBfolder.resolve('jar/lwjgl.jar'), depfolder.resolve('lwjgl.jar'))
copyFile(depBfolder.resolve('doc/javadoc.zip'), depfolder.resolve('javadoc.zip'))
copyFile(depBfolder.resolve('src.zip'), depfolder.resolve('src.zip'))
copyDir(depBfolder.resolve('native/'), depfolder.resolve('natives/'))
deleteDir(base.resolve('depbuild/lwjgl/nightly/'+version))
}
def attachLwjglNightlyEclipse(xmlnode, version, projectname) {
def dep = xmlnode.appendNode('classpathentry', ['kind': 'lib', 'path': 'deps/lwjgl/nightly/'+version+'/lwjgl.jar', 'sourcepath': 'deps/lwjgl/nightly/'+version+'/src.zip'])
def attributes = dep.appendNode('attributes')
attributes.appendNode('attribute', ['name': 'javadoc_location', 'value': 'jar:platform:/resource/'+projectname+'deps/lwjgl/nightly/'+version+'/javadoc.zip!/'])
attributes.appendNode('attribute', ['name': 'org.eclipse.jdt.launching.CLASSPATH_ATTR_LIBRARY_PATH_ENTRY', 'value': projectname+'/deps/lwjgl/nightly/'+version+'/natives'])
}
ext {
getLwjglNightly = this.&getLwjglNightly
attachLwjglNightlyEclipse = this.&attachLwjglNightlyEclipse
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment