96 lines
3.3 KiB
Groovy
96 lines
3.3 KiB
Groovy
import org.gradle.internal.os.OperatingSystem
|
|
|
|
buildscript {
|
|
repositories {
|
|
mavenCentral()
|
|
gradlePluginPortal()
|
|
}
|
|
}
|
|
plugins {
|
|
id 'application'
|
|
id 'java'
|
|
}
|
|
project.ext.lwjglVersion = "3.4.1"
|
|
project.ext.jomlVersion = "1.10.8"
|
|
project.ext.jomlprimitivesVersion = "1.10.0"
|
|
project.ext.lwjgl3awtVersion = "0.1.8"
|
|
project.ext.steamworks4jVersion = "1.9.0"
|
|
project.ext.steamworks4jserverVersion = "1.9.0"
|
|
project.ext.imguiVersion = "1.92.0"
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
application {
|
|
mainClass.set('net.halbear.Executable.Launcher')
|
|
}
|
|
|
|
dependencies {
|
|
implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion")
|
|
implementation 'org.tinylog:tinylog-api:2.7.0'
|
|
implementation 'org.tinylog:tinylog-impl:2.7.0'
|
|
|
|
// Core LWJGL modules
|
|
implementation "org.lwjgl:lwjgl"
|
|
implementation "org.lwjgl:lwjgl-assimp"
|
|
implementation "org.lwjgl:lwjgl-fmod"
|
|
implementation "org.lwjgl:lwjgl-freetype"
|
|
implementation "org.lwjgl:lwjgl-glfw"
|
|
implementation "org.lwjgl:lwjgl-jawt"
|
|
implementation "org.lwjgl:lwjgl-jemalloc"
|
|
implementation "org.lwjgl:lwjgl-llvm"
|
|
implementation "org.lwjgl:lwjgl-lmdb"
|
|
implementation "org.lwjgl:lwjgl-meshoptimizer"
|
|
implementation "org.lwjgl:lwjgl-odbc"
|
|
implementation "org.lwjgl:lwjgl-openal"
|
|
implementation "org.lwjgl:lwjgl-rpmalloc"
|
|
implementation "org.lwjgl:lwjgl-shaderc"
|
|
implementation "org.lwjgl:lwjgl-stb"
|
|
implementation "org.lwjgl:lwjgl-vma"
|
|
implementation "org.lwjgl:lwjgl-vulkan"
|
|
implementation "org.lwjgl:lwjgl-remotery:${lwjglVersion}"
|
|
|
|
// Define targeted native platforms explicitly
|
|
def targetNatives = ["natives-windows", "natives-linux"]
|
|
|
|
// Loop through and bundle natives for both Windows and Linux
|
|
targetNatives.each { target ->
|
|
runtimeOnly "org.lwjgl:lwjgl::$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-assimp::$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-freetype::$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-glfw::$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-jemalloc::$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-llvm::$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-lmdb::$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-meshoptimizer::$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-openal::$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-rpmalloc::$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-remotery:${lwjglVersion}:$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-shaderc::$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-stb::$target"
|
|
runtimeOnly "org.lwjgl:lwjgl-vma::$target"
|
|
}
|
|
|
|
implementation "org.joml:joml:${jomlVersion}"
|
|
implementation "org.joml:joml-primitives:${jomlprimitivesVersion}"
|
|
implementation "org.lwjglx:lwjgl3-awt:${lwjgl3awtVersion}"
|
|
implementation "com.code-disaster.steamworks4j:steamworks4j:${steamworks4jVersion}"
|
|
implementation "com.code-disaster.steamworks4j:steamworks4j-server:${steamworks4jserverVersion}"
|
|
implementation 'com.google.code.gson:gson:2.14.0'
|
|
implementation "org.jcommander:jcommander:3.0"
|
|
|
|
['', '-opengl', '-glfw'].each {
|
|
implementation "org.lwjgl:lwjgl$it:$lwjglVersion"
|
|
runtimeOnly "org.lwjgl:lwjgl$it::natives-windows"
|
|
runtimeOnly "org.lwjgl:lwjgl$it::natives-linux"
|
|
}
|
|
|
|
// ImGui Setup
|
|
implementation "io.github.spair:imgui-java-binding:$imguiVersion"
|
|
implementation "io.github.spair:imgui-java-lwjgl3:$imguiVersion"
|
|
|
|
// ImGui Natives for both OS environments
|
|
runtimeOnly "io.github.spair:imgui-java-natives-windows:$imguiVersion"
|
|
runtimeOnly "io.github.spair:imgui-java-natives-linux:$imguiVersion"
|
|
}
|