group = 'lwjake2' version = '1.1-SNAPSHOT' import org.gradle.internal.os.OperatingSystem apply plugin: 'java' apply plugin: 'application' repositories { mavenCentral() } compileJava { sourceCompatibility = 1.8 targetCompatibility = 1.8 options.encoding = 'UTF-8' } ext { slf4j_version = '1.7.25' log4j_version = '2.11.1' lwjgl_version = '2.9.3' lombok_version = '1.18.2' platform = 'linux' dependencies_dir = 'libs' } dependencies { /* LOGGER */ compile (group: 'org.slf4j', name: 'slf4j-api', version: slf4j_version) compile (group: 'org.apache.logging.log4j', name: 'log4j-core', version: log4j_version) compile (group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: log4j_version) /* LOMBOK */ annotationProcessor (group: 'org.projectlombok', name: 'lombok', version: lombok_version) compileOnly (group: 'org.projectlombok', name: 'lombok', version: lombok_version) /* LWJGL */ compile (group: 'org.lwjgl.lwjgl', name: 'lwjgl', version: lwjgl_version) compile (group: 'org.lwjgl.lwjgl', name: 'lwjgl_util', version: lwjgl_version) /* COMPONENTS */ compileOnly (group: 'com.google.code.findbugs', name: 'annotations', version: '3.0.1') } task unpackNatibeLibraries(type: Copy) { if (OperatingSystem.current().isWindows()) { platform = 'windows' } else if (OperatingSystem.current().isMacOsX()) { platform = 'osx' } configurations.compile.filter { (it.getName().indexOf("lwjgl-platform-") >= 0) && (it.getName().indexOf("$platform") >= 0) }.each { includeEmptyDirs = false from (zipTree(it)) { exclude "META-INF/*" } into "$buildDir/natives/$platform" } } tasks.run.doFirst { mainClassName = 'lwjake2.LWJake2' applicationDefaultJvmArgs = ["-Djava.library.path=$buildDir/natives/$platform"] }.dependsOn(unpackNatibeLibraries) run { mainClassName = 'lwjake2.LWJake2' applicationDefaultJvmArgs = ["-Djava.library.path=$buildDir/natives/$platform"] }