//file:noinspection GroovyAssignabilityCheck //file:noinspection ConfigurationAvoidance //file:noinspection GrDeprecatedAPIUsage import org.gradle.internal.os.OperatingSystem plugins { id("java") id("application") } wrapper { gradleVersion = "8.10" distributionType = Wrapper.DistributionType.BIN } java.toolchain { languageVersion = JavaLanguageVersion.of(8) } sourceSets.main { java.srcDirs = ["src"] resources.srcDirs = ["resources"] } repositories { mavenLocal() mavenCentral() } ext { lwjglVersion = "2.9.3" lwjglPlatform = "linux" if (OperatingSystem.current().isWindows()) { lwjglPlatform = "windows" } else if (OperatingSystem.current().isMacOsX()) { lwjglPlatform = "osx" } } dependencies { implementation("org.lwjgl.lwjgl:lwjgl:$lwjglVersion") implementation("org.lwjgl.lwjgl:lwjgl_util:$lwjglVersion") } application { mainClass = "lwjake2.LWJake2" applicationDefaultJvmArgs = ["-Djava.library.path=$buildDir/natives/$lwjglPlatform"] } task unpackNative(type: Copy) { configurations.runtimeClasspath.filter { (it.getName().indexOf("lwjgl-platform-") >= 0) && (it.getName().indexOf("$lwjglPlatform") >= 0) }.each { includeEmptyDirs = false from (zipTree(it)) { exclude "META-INF/*" } into "$buildDir/natives/$lwjglPlatform" } } run.configure { dependsOn unpackNative }