mdns-explorer/build.gradle

119 lines
3.1 KiB
Groovy
Raw Permalink Normal View History

2023-08-07 13:39:39 +00:00
plugins {
2023-08-14 15:58:57 +00:00
id 'java'
id 'groovy'
2023-08-07 13:39:39 +00:00
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.14'
id 'com.google.osdetector' version '1.7.3'
id 'org.beryx.jlink' version '2.26.0'
2023-08-07 13:39:39 +00:00
}
repositories {
mavenCentral()
mavenLocal()
}
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}
2023-08-14 15:58:57 +00:00
application {
mainModule = 'biz.nellemann.mdexpl'
mainClass = 'biz.nellemann.mdexpl.App'
}
2023-08-07 13:39:39 +00:00
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
2023-08-14 17:19:36 +00:00
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
2023-08-07 13:39:39 +00:00
}
/* This is to be able to build with a JDK not bundled with JavaFX */
javafx {
version = '17.0.8'
2023-08-07 13:39:39 +00:00
modules = [ 'javafx.controls', 'javafx.fxml' ]
// platform("linux-aarch64")
}
dependencies {
implementation 'org.slf4j:slf4j-api:2.0.7' // Logging API
runtimeOnly 'org.slf4j:slf4j-simple:2.0.7' // Logging API
2023-08-15 19:00:47 +00:00
implementation 'jakarta.inject:jakarta.inject-api:2.0.1'
implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1'
2023-08-07 13:39:39 +00:00
implementation 'org.jmdns:jmdns:3.5.8'
testImplementation 'org.spockframework:spock-core:2.3-groovy-3.0'
testImplementation 'org.slf4j:slf4j-simple:2.0.7'
}
test {
useJUnitPlatform()
}
jlink {
forceMerge 'slf4j'
options = [
'--strip-debug',
'--compress', '2',
'--no-header-files',
'--no-man-pages'
]
launcher {
name = 'mDNS-Explorer'
noConsole = true
}
// Only works with Java 14 (and later)
jpackage {
imageName = "mDNS-Explorer"
skipInstaller = true
installerName = "mDNS-Explorer-${osdetector.arch}"
installerOptions += [
'--vendor', 'Nellemann Data',
2023-08-15 07:20:17 +00:00
'--description', 'List mDNS services on your local network.',
'--copyright', 'Mark Nellemann <mark.nellemann@gmail.com>',
'--app-version', project.findProperty('version')
]
// Requires: https://wixtoolset.org/ to create installer on Windows
if(osdetector.os == 'windows') {
installerType = 'msi'
skipInstaller = false
installerOptions += [
'--win-per-user-install',
'--win-dir-chooser',
'--win-menu',
// '--icon', 'src/main/resources/icon.ico'
]
}
// Requires: xcode-select --install
if(osdetector.os == 'osx') {
installerType = 'dmg'
skipInstaller = false
installerOptions += [
//'--icon', 'src/main/resources/icon.icns'
]
}
2023-08-15 07:20:17 +00:00
// Requires: build-rpm / rpm and dpkg-dev
if(osdetector.os == 'linux') {
2023-08-14 17:35:20 +00:00
skipInstaller = false
installerOptions += [
'--linux-shortcut',
2023-08-15 07:20:17 +00:00
'--linux-menu-group', 'Internet',
2023-08-14 17:35:20 +00:00
'--linux-rpm-license-type', 'APACHE-20',
2023-08-15 07:20:17 +00:00
'--linux-deb-maintainer', 'mark.nellemann@gmail.com',
2023-08-14 17:35:20 +00:00
'--icon', 'src/main/resources/icon.png',
]
}
}
}