ServerCraft/build.gradle

137 lines
3.6 KiB
Groovy
Raw Normal View History

/*
* This file was generated by the Gradle 'init' task.
*
* This generated file contains a sample Kotlin application project to get you started.
* For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle
* User Manual available at https://docs.gradle.org/8.0.2/userguide/building_java_projects.html
*/
2023-05-17 21:41:04 -06:00
import org.gradle.internal.os.OperatingSystem
import java.nio.file.Files
import java.io.File
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'io.github.fvarrui:javapackager:1.7.2'
}
}
plugins {
// Apply the org.jetbrains.kotlin.jvm Plugin to add support for Kotlin.
2023-05-09 16:31:47 -06:00
id 'org.jetbrains.kotlin.jvm' version '1.8.0'
// Apply the application plugin to add support for building a CLI application in Java.
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.13'
id 'distribution'
}
apply plugin: 'io.github.fvarrui.javapackager.plugin'
2023-05-17 21:41:04 -06:00
version = "1.0"
repositories {
// Use Maven Central for resolving dependencies.
mavenCentral()
}
dependencies {
// Use the Kotlin JUnit 5 integration.
testImplementation 'org.jetbrains.kotlin:kotlin-test-junit5'
// Use the JUnit 5 integration.
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.9.1'
// This dependency is used by the application.
implementation 'com.google.guava:guava:31.1-jre'
// Coroutines core
2023-05-09 16:31:47 -06:00
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.0"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-javafx:1.7.0"
// Archiver
implementation "org.rauschig:jarchivelib:1.2.0"
}
application {
// Define the main class for the application.
mainClass = 'xyz.brysonsteck.ServerCraft.MainKt'
applicationName = "ServerCraft"
}
2023-05-14 14:53:02 -06:00
distTar {
compression = Compression.GZIP
}
jar {
manifest {
attributes 'Main-Class': application.mainClass
}
duplicatesStrategy = DuplicatesStrategy.INCLUDE
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
task pack(type: io.github.fvarrui.javapackager.gradle.PackageTask, dependsOn: build) {
mainClass = 'xyz.brysonsteck.ServerCraft.MainKt'
bundleJre = true
generateInstaller = true
administratorRequired = false
2023-05-17 00:03:17 -06:00
organizationName = "Bryson Steck"
organizationUrl = "https://brysonsteck.xyz"
organizationEmail = "me@brysonsteck.xyz"
url = "https://codeberg.org/brysonsteck/ServerCraft"
additionalModules = [ "java.management", "jdk.crypto.ec" ]
linuxConfig {
2023-05-15 20:47:40 -06:00
pngFile = file('src/main/resources/icon.png')
2023-05-17 21:41:04 -06:00
wrapJar = false
}
macConfig {
2023-05-15 20:47:40 -06:00
icnsFile = file('src/main/resources/icon.icns')
volumeIcon = file('src/main/resources/icon.icns')
backgroundImage = file('src/main/resources/dmg.png')
codesignApp = false
developerId = 'Bryson Steck'
appId = 'xyz.brysonsteck.ServerCraft'
}
winConfig {
2023-05-15 20:47:40 -06:00
icoFile = file('src/main/resources/icon.ico')
setupMode = 'askTheUser'
disableDirPage = false
disableFinishedPage = false
disableWelcomePage = false
}
}
2023-05-17 21:41:04 -06:00
build.doLast {
if (OperatingSystem.current().isLinux()) {
exec {
workingDir "${buildDir}"
commandLine "mkdir", "-p", "assets/AppDir"
}
exec {
workingDir "${buildDir}"
commandLine "cp", "resources/main/icon.png", "assets/AppDir/ServerCraft.png"
}
}
}
javafx {
version = "20"
modules = ['javafx.controls', 'javafx.fxml', 'javafx.graphics']
2023-05-09 16:31:47 -06:00
}
2023-05-16 22:52:09 -06:00
tasks.named('test') {
// Use JUnit Platform for unit tests.
useJUnitPlatform()
}