75 lines
2.7 KiB
Groovy
75 lines
2.7 KiB
Groovy
// group / version / java / repositories kommen vom Root-Build.
|
||
// Kein 'application'-Plugin: dessen DistributionPlugin nutzt afterEvaluate,
|
||
// was mit runtimeOnly project(':blight-game') in blight-editor kollidiert.
|
||
plugins {
|
||
id 'java'
|
||
}
|
||
|
||
ext { mainClassName = 'de.blight.game.BlightGame' }
|
||
|
||
ext {
|
||
jmeVersion = '3.9.0-stable'
|
||
}
|
||
|
||
dependencies {
|
||
implementation project(':blight-common')
|
||
implementation project(':blight-assets')
|
||
implementation project(':blight-map')
|
||
implementation project(':blight-lang')
|
||
|
||
implementation "org.jmonkeyengine:jme3-core:${jmeVersion}"
|
||
implementation "org.jmonkeyengine:jme3-desktop:${jmeVersion}"
|
||
implementation "org.jmonkeyengine:jme3-lwjgl3:${jmeVersion}"
|
||
implementation "org.jmonkeyengine:jme3-terrain:${jmeVersion}"
|
||
implementation "org.jmonkeyengine:jme3-effects:${jmeVersion}"
|
||
implementation "org.jmonkeyengine:jme3-jbullet:${jmeVersion}"
|
||
implementation "org.jmonkeyengine:jme3-jogg:${jmeVersion}"
|
||
implementation "org.jmonkeyengine:jme3-plugins:${jmeVersion}"
|
||
implementation "org.jmonkeyengine:jme3-testdata:${jmeVersion}"
|
||
implementation 'com.github.stephengold:SkyControl:1.1.0'
|
||
implementation 'com.google.code.gson:gson:2.11.0'
|
||
implementation 'org.slf4j:slf4j-api:2.0.17'
|
||
implementation 'org.slf4j:jul-to-slf4j:2.0.17'
|
||
runtimeOnly 'ch.qos.logback:logback-classic:1.5.18'
|
||
compileOnly 'org.projectlombok:lombok:1.18.38'
|
||
annotationProcessor 'org.projectlombok:lombok:1.18.38'
|
||
}
|
||
|
||
tasks.register('extractNatives', Copy) {
|
||
def nativeConf = configurations.runtimeClasspath.resolvedConfiguration
|
||
.resolvedArtifacts
|
||
.findAll { it.name.contains('natives') }
|
||
.collect { zipTree(it.file) }
|
||
|
||
from nativeConf
|
||
into "${buildDir}/natives"
|
||
duplicatesStrategy = DuplicatesStrategy.INCLUDE
|
||
}
|
||
|
||
tasks.register('run', JavaExec) {
|
||
group = 'application'
|
||
description = 'Startet das Spiel'
|
||
mainClass = mainClassName
|
||
classpath = sourceSets.main.runtimeClasspath
|
||
javaLauncher = javaToolchains.launcherFor {
|
||
languageVersion = JavaLanguageVersion.of(26)
|
||
}
|
||
jvmArgs = [
|
||
'--add-opens', 'java.base/java.lang=ALL-UNNAMED',
|
||
'--add-opens', 'java.desktop/sun.awt=ALL-UNNAMED',
|
||
'--enable-native-access=ALL-UNNAMED',
|
||
"-Djava.library.path=${buildDir}/natives",
|
||
]
|
||
dependsOn extractNatives
|
||
workingDir = rootDir
|
||
}
|
||
|
||
jar {
|
||
// logback.xml nicht in die Bibliotheks-Jar einbetten – der Editor bringt seine eigene mit,
|
||
// was sonst zu "occurs multiple times on the classpath"-Warnungen führt.
|
||
exclude 'logback.xml'
|
||
manifest {
|
||
attributes 'Main-Class': mainClassName
|
||
}
|
||
}
|