0

build: переход на Gradle Kotlin DSL

This commit is contained in:
2026-02-11 19:15:11 +03:00
parent 7f22803b7d
commit d2b9627ff3
3 changed files with 83 additions and 74 deletions

View File

@@ -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
}

82
build.gradle.kts Normal file
View File

@@ -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<Wrapper> {
gradleVersion = "8.10"
distributionType = Wrapper.DistributionType.BIN
}
withType<JavaCompile> {
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<Copy>("unpackBaseQ2") {
val zipFile = file("baseq2.zip")
println(zipFile.absolutePath)
eachFile {
path = path.substringAfter('/').substringAfter('\\')
}
includeEmptyDirs = false
from(zipTree(zipFile))
into("baseq2")
}
register<Copy>("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<JavaExec>("run") {
dependsOn("unpackNative")
}
}

1
settings.gradle.kts Normal file
View File

@@ -0,0 +1 @@
rootProject.name = "lwjake2"