149 lines
4.5 KiB
Groovy
149 lines
4.5 KiB
Groovy
plugins {
|
|
// Apply the java-library plugin to add support for Java Library
|
|
id 'java-library'
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
jcenter()
|
|
|
|
maven { url 'http://windcorp.ru/./maven' }
|
|
}
|
|
|
|
dependencies {
|
|
implementation 'org.apache.commons:commons-math3:3.6.1'
|
|
implementation 'com.google.guava:guava:30.0-jre'
|
|
implementation 'net.sf.trove4j:trove4j:3.0.3'
|
|
|
|
implementation 'ru.windcorp.fork.io.github.java-graphics:glm:1.0.1'
|
|
|
|
// log4j
|
|
implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.13.3'
|
|
implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.13.3'
|
|
|
|
testImplementation 'junit:junit:4.12'
|
|
|
|
// See also LWJGL dependencies below
|
|
}
|
|
|
|
/*
|
|
* LWJGL
|
|
* (auto-generated script)
|
|
* ((here be dragons))
|
|
*/
|
|
|
|
import org.gradle.internal.os.OperatingSystem
|
|
|
|
project.ext.lwjglVersion = "3.2.3"
|
|
|
|
switch (OperatingSystem.current()) {
|
|
case OperatingSystem.LINUX:
|
|
def osArch = System.getProperty("os.arch")
|
|
project.ext.lwjglNatives = osArch.startsWith("arm") || osArch.startsWith("aarch64")
|
|
? "natives-linux-${osArch.contains("64") || osArch.startsWith("armv8") ? "arm64" : "arm32"}"
|
|
: "natives-linux"
|
|
break
|
|
case OperatingSystem.MAC_OS:
|
|
project.ext.lwjglNatives = "natives-macos"
|
|
break
|
|
case OperatingSystem.WINDOWS:
|
|
project.ext.lwjglNatives = System.getProperty("os.arch").contains("64") ? "natives-windows" : "natives-windows-x86"
|
|
break
|
|
}
|
|
|
|
dependencies {
|
|
implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion")
|
|
|
|
implementation "org.lwjgl:lwjgl"
|
|
implementation "org.lwjgl:lwjgl-assimp"
|
|
implementation "org.lwjgl:lwjgl-bgfx"
|
|
implementation "org.lwjgl:lwjgl-glfw"
|
|
implementation "org.lwjgl:lwjgl-nanovg"
|
|
implementation "org.lwjgl:lwjgl-nuklear"
|
|
implementation "org.lwjgl:lwjgl-openal"
|
|
implementation "org.lwjgl:lwjgl-opengl"
|
|
implementation "org.lwjgl:lwjgl-par"
|
|
implementation "org.lwjgl:lwjgl-stb"
|
|
implementation "org.lwjgl:lwjgl-vulkan"
|
|
runtimeOnly "org.lwjgl:lwjgl::$lwjglNatives"
|
|
runtimeOnly "org.lwjgl:lwjgl-assimp::$lwjglNatives"
|
|
runtimeOnly "org.lwjgl:lwjgl-bgfx::$lwjglNatives"
|
|
runtimeOnly "org.lwjgl:lwjgl-glfw::$lwjglNatives"
|
|
runtimeOnly "org.lwjgl:lwjgl-nanovg::$lwjglNatives"
|
|
runtimeOnly "org.lwjgl:lwjgl-nuklear::$lwjglNatives"
|
|
runtimeOnly "org.lwjgl:lwjgl-openal::$lwjglNatives"
|
|
runtimeOnly "org.lwjgl:lwjgl-opengl::$lwjglNatives"
|
|
runtimeOnly "org.lwjgl:lwjgl-par::$lwjglNatives"
|
|
runtimeOnly "org.lwjgl:lwjgl-stb::$lwjglNatives"
|
|
if (lwjglNatives == "natives-macos") runtimeOnly "org.lwjgl:lwjgl-vulkan::$lwjglNatives"
|
|
}
|
|
|
|
// LWJGL END
|
|
|
|
configurations {
|
|
packageOnly
|
|
packageLibraries.extendsFrom runtimeClasspath
|
|
packageLibraries.extendsFrom packageOnly
|
|
}
|
|
|
|
dependencies {
|
|
def archs = ['natives-linux', 'natives-linux-arm64', 'natives-linux-arm32', 'natives-macos', 'natives-windows', 'natives-windows-x86']
|
|
|
|
archs.each { arch ->
|
|
packageOnly "org.lwjgl:lwjgl::$arch"
|
|
packageOnly "org.lwjgl:lwjgl-assimp::$arch"
|
|
packageOnly "org.lwjgl:lwjgl-bgfx::$arch"
|
|
packageOnly "org.lwjgl:lwjgl-glfw::$arch"
|
|
packageOnly "org.lwjgl:lwjgl-nanovg::$arch"
|
|
packageOnly "org.lwjgl:lwjgl-nuklear::$arch"
|
|
packageOnly "org.lwjgl:lwjgl-openal::$arch"
|
|
packageOnly "org.lwjgl:lwjgl-opengl::$arch"
|
|
packageOnly "org.lwjgl:lwjgl-par::$arch"
|
|
packageOnly "org.lwjgl:lwjgl-stb::$arch"
|
|
}
|
|
|
|
packageOnly "org.lwjgl:lwjgl-vulkan::natives-macos"
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes(
|
|
"Main-Class": "ru.windcorp.progressia.client.ProgressiaClientMain",
|
|
"Class-Path": configurations.packageLibraries.collect { "lib/" + it.getName() }.join(' ')
|
|
)
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Copies runtime dependencies to a prespecified location so they can be packaged properly.
|
|
*/
|
|
task copyLibs(type: Copy) {
|
|
into "${libsDir}/lib"
|
|
from configurations.runtimeClasspath
|
|
}
|
|
|
|
build.dependsOn(copyLibs)
|
|
|
|
task copyLibsForPackaging(type: Copy) {
|
|
into "${libsDir}/lib"
|
|
from configurations.packageLibraries
|
|
}
|
|
|
|
task createPackages(type: Exec) {
|
|
commandLine './buildPackages.sh'
|
|
}
|
|
|
|
java {
|
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
|
targetCompatibility = JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
compileJava {
|
|
if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
|
|
options.compilerArgs.addAll(['--release', '8'])
|
|
}
|
|
}
|
|
|
|
createPackages.dependsOn(build)
|
|
createPackages.dependsOn(copyLibsForPackaging)
|