204 lines
6.5 KiB
Groovy
204 lines
6.5 KiB
Groovy
|
plugins {
|
||
|
id 'application'
|
||
|
id 'java'
|
||
|
id "de.undercouch.download" version "5.1.0"
|
||
|
id 'idea'
|
||
|
id "io.github.0ffz.github-packages" version "1.2.1" // Plugin for anonymous inclusion of artifacts hosted in github package registry
|
||
|
}
|
||
|
|
||
|
description = 'Voxel application'
|
||
|
|
||
|
java {
|
||
|
sourceCompatibility = '11'
|
||
|
targetCompatibility = '11'
|
||
|
}
|
||
|
|
||
|
ext.jmonkeyengineVersion = '3.5.2-stable'
|
||
|
|
||
|
mainClassName = 'com.emamaker.voxeltest.intervaltrees.Voxel'
|
||
|
if (!hasProperty('mainClass')) {
|
||
|
ext.mainClass = mainClassName
|
||
|
}
|
||
|
jar.manifest.attributes('Main-Class': mainClassName)
|
||
|
|
||
|
repositories {
|
||
|
mavenCentral()
|
||
|
mavenLocal()
|
||
|
}
|
||
|
|
||
|
dependencies {
|
||
|
// You can read more about how to add dependencies here:
|
||
|
// https://docs.gradle.org/current/userguide/dependency_management.html#sec:how_to_declare_your_dependencies
|
||
|
|
||
|
implementation 'org.jmonkeyengine:jme3-core:' + jmonkeyengineVersion
|
||
|
runtimeOnly 'org.jmonkeyengine:jme3-jogg:' + jmonkeyengineVersion
|
||
|
runtimeOnly 'org.jmonkeyengine:jme3-plugins:' + jmonkeyengineVersion
|
||
|
|
||
|
|
||
|
runtimeOnly 'org.jmonkeyengine:jme3-lwjgl3:' + jmonkeyengineVersion
|
||
|
|
||
|
|
||
|
}
|
||
|
|
||
|
distZip {
|
||
|
//having a degenerate folder within the dist zip complicates generating the other zips
|
||
|
eachFile { file ->
|
||
|
String path = file.relativePath
|
||
|
file.setPath(path.substring(path.indexOf("/") + 1, path.length()))
|
||
|
}
|
||
|
includeEmptyDirs(false)
|
||
|
}
|
||
|
|
||
|
//See https://api.adoptium.net/v3/assets/feature_releases/11/ga?image_type=jre for jre urls
|
||
|
def windowsJreUrl = "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15%2B10/OpenJDK11U-jre_x64_windows_hotspot_11.0.15_10.zip"
|
||
|
def linuxJreUrl = "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15%2B10/OpenJDK11U-jre_x64_linux_hotspot_11.0.15_10.tar.gz"
|
||
|
def macJreUrl = "https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.15%2B10/OpenJDK11U-jre_x64_mac_hotspot_11.0.15_10.tar.gz"
|
||
|
|
||
|
|
||
|
task downloadWindowsJre(type: Download) {
|
||
|
src windowsJreUrl
|
||
|
dest new File(buildDir, '/jres/windowsJre.zip')
|
||
|
overwrite false
|
||
|
}
|
||
|
|
||
|
task downloadAndUnzipWindowsJre(dependsOn: downloadWindowsJre, type: Copy) {
|
||
|
from zipTree(downloadWindowsJre.dest)
|
||
|
into "${buildDir}/jres/windowsJre/"
|
||
|
includeEmptyDirs(false)
|
||
|
filesMatching("**") {
|
||
|
it.path = it.path.replaceAll("^[a-zA-Z0-9.+-]*[/\\\\]", "jre/") //rename the top level to something standard so the rest of the script will be easier
|
||
|
}
|
||
|
}
|
||
|
|
||
|
task buildWindowsDistribution(dependsOn: [distZip, downloadAndUnzipWindowsJre], type: Copy)
|
||
|
{
|
||
|
group 'distribution'
|
||
|
from files("${projectDir}/scripts/desktopDeployment/Voxel.bat"), zipTree(distZip.archiveFile), "${buildDir}/jres/windowsJre"
|
||
|
into new File(buildDir, 'distributions/Voxel-windows')
|
||
|
includeEmptyDirs false
|
||
|
exclude 'bin/**' //we are adding our own run scripts, exclude the ones coming from distZip
|
||
|
}
|
||
|
|
||
|
task zipWindowsDistribution( dependsOn:buildWindowsDistribution, type: Zip) {
|
||
|
group 'distribution'
|
||
|
archiveFileName = "Voxel-windows.zip"
|
||
|
destinationDirectory = file("$buildDir/distributions")
|
||
|
from "$buildDir/distributions/Voxel-windows"
|
||
|
}
|
||
|
|
||
|
|
||
|
task downloadLinuxJre(type: Download) {
|
||
|
src linuxJreUrl
|
||
|
dest new File(buildDir, '/jres/linuxJre.tar.gz')
|
||
|
overwrite false
|
||
|
}
|
||
|
|
||
|
task downloadAndUnzipLinuxJre(dependsOn: downloadLinuxJre, type: Copy) {
|
||
|
from tarTree(downloadLinuxJre.dest)
|
||
|
into "${buildDir}/jres/linuxJre/"
|
||
|
includeEmptyDirs(false)
|
||
|
filesMatching("**") {
|
||
|
it.path = it.path.replaceAll("^[a-zA-Z0-9.+-]*[/\\\\]", "jre/") //rename the top level to something standard so the rest of the script will be easier
|
||
|
}
|
||
|
}
|
||
|
|
||
|
task buildLinuxDistribution(dependsOn: [distZip, downloadAndUnzipLinuxJre], type: Copy)
|
||
|
{
|
||
|
group 'distribution'
|
||
|
from files("${projectDir}/scripts/desktopDeployment/Voxel.sh"){
|
||
|
fileMode 0755
|
||
|
}
|
||
|
from zipTree(distZip.archiveFile)
|
||
|
from "${buildDir}/jres/linuxJre"
|
||
|
into new File(buildDir, 'distributions/Voxel-linux')
|
||
|
includeEmptyDirs false
|
||
|
exclude 'bin/**' //we are adding our own run scripts, exclude the ones coming from distZip
|
||
|
}
|
||
|
|
||
|
task zipLinuxDistribution( dependsOn:buildLinuxDistribution, type: Zip) {
|
||
|
group 'distribution'
|
||
|
archiveFileName = "Voxel-linux.tar.gz"
|
||
|
destinationDirectory = file("$buildDir/distributions")
|
||
|
from ("$buildDir/distributions/Voxel-linux"){
|
||
|
include('**.sh')
|
||
|
include('**/java')
|
||
|
fileMode 0755
|
||
|
}
|
||
|
from ("$buildDir/distributions/Voxel-linux"){
|
||
|
exclude('**.sh')
|
||
|
exclude('**/java')
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
task downloadMacJre(type: Download) {
|
||
|
src macJreUrl
|
||
|
dest new File(buildDir, '/jres/macJre.tar.gz')
|
||
|
overwrite false
|
||
|
}
|
||
|
|
||
|
task downloadAndUnzipMacJre(dependsOn: downloadMacJre, type: Copy) {
|
||
|
from tarTree(downloadMacJre.dest)
|
||
|
into "${buildDir}/jres/macJre/"
|
||
|
includeEmptyDirs(false)
|
||
|
filesMatching("**") {
|
||
|
it.path = it.path.replaceAll("^[a-zA-Z0-9.+-]*[/\\\\]", "jre/") //rename the top level to something standard so the rest of the script will be easier
|
||
|
}
|
||
|
}
|
||
|
|
||
|
task buildMacDistribution(dependsOn: [distZip, downloadAndUnzipMacJre], type: Copy)
|
||
|
{
|
||
|
group 'distribution'
|
||
|
from files("${projectDir}/scripts/desktopDeployment/Voxel.command"){
|
||
|
fileMode 0755
|
||
|
}
|
||
|
from zipTree(distZip.archiveFile)
|
||
|
from "${buildDir}/jres/macJre"
|
||
|
into new File(buildDir, 'distributions/Voxel-mac')
|
||
|
includeEmptyDirs false
|
||
|
exclude 'bin/**' //we are adding our own run scripts, exclude the ones coming from distZip
|
||
|
}
|
||
|
|
||
|
task zipMacDistribution( dependsOn:buildMacDistribution, type: Zip) {
|
||
|
group 'distribution'
|
||
|
archiveFileName = "Voxel-mac.tar.gz"
|
||
|
destinationDirectory = file("$buildDir/distributions")
|
||
|
from ("$buildDir/distributions/Voxel-mac"){
|
||
|
include('**.command')
|
||
|
include('**/java')
|
||
|
fileMode 0755
|
||
|
}
|
||
|
from ("$buildDir/distributions/Voxel-mac"){
|
||
|
exclude('**.command')
|
||
|
exclude('**/java')
|
||
|
}
|
||
|
}
|
||
|
|
||
|
task buildAllDistributions{
|
||
|
group 'distribution'
|
||
|
dependsOn 'zipWindowsDistribution'
|
||
|
dependsOn 'zipLinuxDistribution'
|
||
|
dependsOn 'zipMacDistribution'
|
||
|
}
|
||
|
|
||
|
// cleanup tasks
|
||
|
clean.dependsOn('cleanDLLs', 'cleanDyLibs', 'cleanLogs', 'cleanSOs')
|
||
|
task cleanDLLs(type: Delete) {
|
||
|
delete fileTree(dir: '.', include: '*.dll')
|
||
|
}
|
||
|
task cleanDyLibs(type: Delete) {
|
||
|
delete fileTree(dir: '.', include: '*.dylib')
|
||
|
}
|
||
|
task cleanLogs(type: Delete) {
|
||
|
delete fileTree(dir: '.', include: 'hs_err_pid*.log')
|
||
|
}
|
||
|
task cleanSOs(type: Delete) {
|
||
|
delete fileTree(dir: '.', include: '*.so')
|
||
|
}
|
||
|
|
||
|
task fund(){
|
||
|
doLast {
|
||
|
java.awt.Desktop.desktop.browse "https://start.jmonkeyengine.org/#!funding=JME_DESKTOP".toURI()
|
||
|
}
|
||
|
}
|