diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 48bb1f7..0000000 --- a/build.gradle +++ /dev/null @@ -1,74 +0,0 @@ -//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 unpackBaseQ2(type: Copy) { - File zipFile = file("baseq2.zip") - File outputDir = file(".") - println(zipFile.absolutePath) - - from zipTree(zipFile) - into outputDir -} - -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 -} diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..6c4126b --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,82 @@ +plugins { + java + application +} + +group = "lwjake2" +version = "1.0-SNAPSHOT" + +sourceSets { + main { + java.srcDirs("src") + resources.srcDirs("resources") + } +} + +repositories { + mavenLocal() + mavenCentral() +} + +val lwjglVersion by extra("2.9.3") +val lwjglPlatform by extra( + when { + org.gradle.internal.os.OperatingSystem.current().isWindows -> "windows" + org.gradle.internal.os.OperatingSystem.current().isMacOsX -> "osx" + else -> "linux" + } +) + +dependencies { + implementation("org.lwjgl.lwjgl:lwjgl:$lwjglVersion") + implementation("org.lwjgl.lwjgl:lwjgl_util:$lwjglVersion") +} + +application { + mainClass.set("lwjake2.LWJake2") + applicationDefaultJvmArgs = listOf("-Djava.library.path=${layout.buildDirectory.get()}/natives/$lwjglPlatform") +} + +tasks { + withType { + gradleVersion = "8.10" + distributionType = Wrapper.DistributionType.BIN + } + + withType { + sourceCompatibility = JavaVersion.VERSION_1_8.toString() + targetCompatibility = JavaVersion.VERSION_1_8.toString() + options.encoding = "UTF-8" + options.compilerArgs.addAll(listOf("-Xlint:unchecked", "-Xlint:deprecation")) + } + + register("unpackBaseQ2") { + val zipFile = file("baseq2.zip") + println(zipFile.absolutePath) + + eachFile { + path = path.substringAfter('/').substringAfter('\\') + } + includeEmptyDirs = false + + from(zipTree(zipFile)) + into("baseq2") + } + + register("unpackNative") { + configurations.runtimeClasspath.get().filter { + it.name.contains("lwjgl-platform-") && + it.name.contains(lwjglPlatform) + }.forEach { + includeEmptyDirs = false + from(zipTree(it)) { + exclude("META-INF/*") + } + into(layout.buildDirectory.dir("natives/$lwjglPlatform")) + } + } + + named("run") { + dependsOn("unpackNative") + } +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..1c57093 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "lwjake2" \ No newline at end of file