Terrain4J_Experimental_branch/build.gradle

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