Inceptum/build.gradle

85 lines
2.4 KiB
Groovy

plugins {
id 'java'
id 'application'
id 'com.github.johnrengelman.shadow' version '7.0.0'
id "de.undercouch.download" version "4.1.1"
}
group 'io.gitlab.jfronny'
version '1.0'
application {
mainClass = 'io.gitlab.jfronny.inceptum.Inceptum'
}
repositories {
mavenCentral()
}
ext {
lwjglVersion = '3.2.3'
imguiVersion = '1.84.1.3'
log4jVersion = '2.14.1'
}
dependencies {
implementation 'com.google.code.gson:gson:2.8.8'
implementation "org.apache.logging.log4j:log4j-api:$log4jVersion"
implementation "org.apache.logging.log4j:log4j-core:$log4jVersion"
implementation 'net.freeutils:jlhttp:2.6'
implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion")
['', '-opengl', '-glfw'].each {
implementation "org.lwjgl:lwjgl$it:$lwjglVersion"
implementation "org.lwjgl:lwjgl$it::natives-windows"
implementation "org.lwjgl:lwjgl$it::natives-linux"
implementation "org.lwjgl:lwjgl$it::natives-macos"
}
implementation "io.github.spair:imgui-java-binding:$imguiVersion" // https://github.com/SpaiR/imgui-java
implementation "io.github.spair:imgui-java-lwjgl3:$imguiVersion"
implementation "io.github.spair:imgui-java-natives-windows:$imguiVersion"
implementation "io.github.spair:imgui-java-natives-linux:$imguiVersion"
implementation "io.github.spair:imgui-java-natives-macos:$imguiVersion"
}
processResources {
inputs.property "version", project.version
filesMatching("version.json") {
expand "version": project.version
}
}
class FileOutput extends DefaultTask {
@OutputFile
File output
}
def bootstrapVersion = "0.1.6"
def bootstrapArch = "i686"
task downloadBootstrap(type: Download) {
src "https://maven.fabricmc.net/net/fabricmc/fabric-installer-native-bootstrap/windows-${bootstrapArch}/${bootstrapVersion}/windows-${bootstrapArch}-${bootstrapVersion}.exe"
dest project.buildDir
}
task nativeExe(dependsOn: [downloadBootstrap], type: FileOutput) {
output = file("${projectDir}/build/libs/${archivesBaseName}-${project.version}.exe")
outputs.upToDateWhen { false }
doFirst {
output.delete()
}
doLast {
output.createNewFile()
output.setBytes downloadBootstrap.outputFiles.first().readBytes()
output.append shadowJar.archiveFile.get().getAsFile().readBytes()
}
}
build.dependsOn nativeExe