Files
SimpleJavaEngine/build.gradle
T
2026-08-05 17:15:58 +02:00

118 lines
3.2 KiB
Groovy

apply plugin: 'java'
apply plugin: 'eclipse'
java.toolchain.languageVersion = JavaLanguageVersion.of(25)
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
eclipse {
classpath {
downloadJavadoc = true
downloadSources = true
}
}
sourceSets {
math
events
assets
graphics
gui
main
}
configurations {
commonImplementation
assetsImplementation.extendsFrom(eventsImplementation)
graphicsImplementation.extendsFrom(mathImplementation, assetsImplementation)
guiImplementation.extendsFrom(graphicsImplementation)
implementation.extendsFrom(guiImplementation)
}
sourceSets.all { sourceSet ->
String implementationConfigName = sourceSet.implementationConfigurationName
configurations.named(implementationConfigName).configure {
extendsFrom(configurations.named("commonImplementation").get())
}
}
repositories {
mavenCentral()
maven {
name = "Speiger Maven"
url = "https://maven.speiger.com/repository/main"
}
maven { url = "https://central.sonatype.com/repository/maven-snapshots" }
}
dependencies {
assetsImplementation sourceSets.events.output
graphicsImplementation sourceSets.math.output
graphicsImplementation sourceSets.assets.output
guiImplementation sourceSets.graphics.output
implementation sourceSets.gui.output
//LWJGL 3
commonImplementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion")
commonImplementation "org.lwjgl:lwjgl"
commonImplementation "org.lwjgl:lwjgl-glfw"
commonImplementation "org.lwjgl:lwjgl-jemalloc"
commonImplementation "org.lwjgl:lwjgl-openal"
commonImplementation "org.lwjgl:lwjgl-opengl"
commonImplementation "org.lwjgl:lwjgl-stb"
commonImplementation "org.lwjgl:lwjgl-nfd"
commonImplementation "org.lwjgl:lwjgl-freetype"
commonImplementation "org.lwjgl:lwjgl-harfbuzz"
commonImplementation "org.lwjgl:lwjgl-nanovg"
commonImplementation "org.lwjgl:lwjgl::$lwjglNatives"
commonImplementation "org.lwjgl:lwjgl-glfw::$lwjglNatives"
commonImplementation "org.lwjgl:lwjgl-jemalloc::$lwjglNatives"
commonImplementation "org.lwjgl:lwjgl-openal::$lwjglNatives"
commonImplementation "org.lwjgl:lwjgl-opengl::$lwjglNatives"
commonImplementation "org.lwjgl:lwjgl-stb::$lwjglNatives"
commonImplementation "org.lwjgl:lwjgl-nfd::$lwjglNatives"
commonImplementation "org.lwjgl:lwjgl-freetype::$lwjglNatives"
commonImplementation "org.lwjgl:lwjgl-harfbuzz::$lwjglNatives"
commonImplementation "org.lwjgl:lwjgl-nanovg::$lwjglNatives"
commonImplementation "org.jspecify:jspecify:1.0.0"
//Gson
commonImplementation 'com.google.code.gson:gson:2.8.6'
//Primitive Collections
commonImplementation 'de.speiger:Primitive-Collections:1.0.0'
}
jar {
sourceSets.each { ss ->
from ss.output
}
from {
configurations.runtimeClasspath.collect {
!it.exists() ? null : (it.isDirectory() ? it : zipTree(it))
}
}
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}
task srcJar(type: Jar) {
archiveClassifier = 'sources'
sourceSets.each { ss ->
from ss.allSource
}
duplicatesStrategy = DuplicatesStrategy.INCLUDE
}
artifacts {
archives srcJar
}