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