mirror of https://github.com/zlatinb/muwire
226 lines
8.0 KiB
Groovy
226 lines
8.0 KiB
Groovy
buildscript {
|
|
repositories {
|
|
jcenter()
|
|
mavenLocal()
|
|
maven {
|
|
url "https://plugins.gradle.org/m2"
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
classpath 'com.github.jengelman.gradle.plugins:shadow:5.2.0'
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id 'application'
|
|
id "com.github.johnrengelman.shadow" version "5.2.0"
|
|
}
|
|
|
|
repositories {
|
|
jcenter()
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
java {
|
|
srcDir 'src/main/java'
|
|
}
|
|
groovy {
|
|
srcDir 'griffon-app/conf'
|
|
srcDir 'griffon-app/controllers'
|
|
srcDir 'griffon-app/lifecycle'
|
|
srcDir 'griffon-app/models'
|
|
srcDir 'griffon-app/resources'
|
|
srcDir 'griffon-app/services'
|
|
srcDir 'griffon-app/views'
|
|
}
|
|
resources {
|
|
srcDir 'griffon-app/i18n'
|
|
srcDir 'griffon-app/resources'
|
|
}
|
|
}
|
|
test {
|
|
java {
|
|
srcDir 'src/test/java'
|
|
}
|
|
}
|
|
}
|
|
|
|
application {
|
|
mainClassName = 'com.muwire.gui.Launcher'
|
|
applicationName = 'MuWire'
|
|
}
|
|
|
|
run.doFirst {
|
|
setDefaultArgs()
|
|
}
|
|
|
|
startScripts.doFirst {
|
|
setDefaultArgs()
|
|
}
|
|
|
|
private void setDefaultArgs() {
|
|
application.applicationDefaultJvmArgs = ["-Djava.util.logging.config.file=logging.properties",
|
|
"-Xms256M",
|
|
"-Xmx4g",
|
|
"-XX:+UseParallelGC",
|
|
"-XX:+HeapDumpOnOutOfMemoryError",
|
|
"-XX:+ExitOnOutOfMemoryError",
|
|
"--add-opens", "java.base/java.lang=ALL-UNNAMED",
|
|
"--add-opens", "java.base/java.util=ALL-UNNAMED",
|
|
"--add-opens", "java.base/sun.nio.fs=ALL-UNNAMED",
|
|
"--add-opens", "java.base/java.nio=ALL-UNNAMED",
|
|
"--add-opens", "java.desktop/java.awt=ALL-UNNAMED",
|
|
"--add-opens", "java.desktop/javax.swing=ALL-UNNAMED",
|
|
"--add-opens", "java.desktop/javax.swing.plaf.basic=ALL-UNNAMED",
|
|
"--add-opens", "java.desktop/javax.swing.text.html=ALL-UNNAMED",
|
|
"--add-opens", "java.desktop/javax.swing.tree=ALL-UNNAMED",
|
|
"--add-opens", "java.desktop/com.sun.java.swing.plaf.gtk=ALL-UNNAMED",
|
|
"--add-opens", "java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED",
|
|
"--add-opens", "java.desktop/sun.swing=ALL-UNNAMED",
|
|
"--add-exports", "java.desktop/com.apple.laf=ALL-UNNAMED"]
|
|
|
|
}
|
|
|
|
configurations.all {
|
|
exclude group:'org.codehaus.groovy', module:'groovy-test'
|
|
exclude group:'org.codehaus.groovy', module:'groovy-testng'
|
|
exclude group:'org.codehaus.groovy', module:'groovy-test-junit5'
|
|
exclude group:'org.codehaus.groovy', module:'groovy-ant'
|
|
exclude group:'org.codehaus.groovy', module:'groovy-nio'
|
|
exclude group:'org.codehaus.groovy', module:'groovy-servlet'
|
|
exclude group:'org.codehaus.groovy', module:'groovy-jmx'
|
|
exclude group:'org.codehaus.groovy', module:'groovy-groovydoc'
|
|
exclude group:'org.codehaus.groovy', module:'groovy-groovysh'
|
|
exclude group:'org.codehaus.groovy', module:'groovy-xml'
|
|
exclude group:'org.codehaus.groovy', module:'groovy-docgenerator'
|
|
// TODO: add more as discovered
|
|
}
|
|
|
|
dependencies {
|
|
implementation project(":core")
|
|
implementation "org.codehaus.griffon:griffon-swing-groovy:${griffonVersion}"
|
|
implementation "org.codehaus.griffon:griffon-groovy:${griffonVersion}"
|
|
implementation "org.codehaus.griffon:griffon-groovy-compile:${griffonVersion}"
|
|
implementation "org.codehaus.griffon:griffon-swing:${griffonVersion}"
|
|
implementation "org.codehaus.griffon:griffon-guice:${griffonVersion}"
|
|
implementation "org.codehaus.griffon:griffon-core:${griffonVersion}"
|
|
implementation "org.codehaus.griffon:griffon-core-compile:${griffonVersion}"
|
|
|
|
implementation "org.codehaus.groovy:groovy-all:${groovyVersion}"
|
|
implementation group: 'com.bulenkov', name: 'darcula', version: '2018.2'
|
|
implementation 'com.jtattoo:JTattoo:1.6.13'
|
|
|
|
implementation "net.java.dev.jna:jna:5.10.0"
|
|
implementation 'net.java.dev.jna:jna-platform:5.10.0'
|
|
|
|
implementation 'com.github.hypfvieh:dbus-java-parent:4.1.0'
|
|
implementation 'com.github.hypfvieh:dbus-java-transport-jnr-unixsocket:4.1.0'
|
|
implementation 'com.github.hypfvieh:dbus-java-transport-tcp:4.1.0'
|
|
|
|
// runtime "org.slf4j:slf4j-simple:${slf4jVersion}"
|
|
|
|
runtimeOnly group: 'org.slf4j', name: 'slf4j-jdk14', version: "${slf4jVersion}"
|
|
runtimeOnly group: 'org.slf4j', name: 'slf4j-api', version: "${slf4jVersion}"
|
|
runtimeOnly group: 'org.slf4j', name: 'jul-to-slf4j', version: "${slf4jVersion}"
|
|
runtimeOnly "javax.annotation:javax.annotation-api:1.3.2"
|
|
|
|
// because java 14 doesn't come with it
|
|
runtimeOnly 'mrj:MRJToolkitStubs:1.0'
|
|
|
|
testCompileOnly "org.codehaus.griffon:griffon-fest-test:${griffonVersion}"
|
|
testCompileOnly "org.spockframework:spock-core:${spockVersion}"
|
|
testCompileOnly('org.awaitility:awaitility-groovy:3.1.0') {
|
|
exclude group: 'org.codehaus.groovy', module: 'groovy-all'
|
|
}
|
|
testCompileOnly "org.codehaus.groovy:groovy-all:${groovyVersion}"
|
|
|
|
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.2'
|
|
testImplementation 'junit:junit:4.12'
|
|
}
|
|
|
|
tasks.withType(JavaCompile) {
|
|
sourceCompatibility = project.sourceCompatibility
|
|
targetCompatibility = project.targetCompatibility
|
|
}
|
|
|
|
tasks.withType(GroovyCompile) {
|
|
sourceCompatibility = project.sourceCompatibility
|
|
targetCompatibility = project.targetCompatibility
|
|
}
|
|
|
|
if (hasProperty('debugRun') && ((project.debugRun as boolean))) {
|
|
run {
|
|
jvmArgs '-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005'
|
|
}
|
|
}
|
|
|
|
import java.nio.file.Path
|
|
import java.nio.file.Paths
|
|
|
|
String className(File f, String prefix) {
|
|
Path pwd = file(".").getAbsoluteFile().toPath()
|
|
Path prefixPath = Paths.get(pwd.toString(),prefix)
|
|
|
|
Path filePath = f.toPath()
|
|
Path relative = prefixPath.relativize(filePath)
|
|
String name = relative.toString()
|
|
name.replace(File.separator,'.').substring(0, name.lastIndexOf(".") )
|
|
}
|
|
|
|
task griffonManifest {
|
|
doLast {
|
|
def models = fileTree("griffon-app/models").getFiles().collect {
|
|
className(it, "griffon-app/models")
|
|
}.sort()
|
|
def views = fileTree("griffon-app/views").getFiles().collect {
|
|
className(it, "griffon-app/views")
|
|
}.sort()
|
|
def controllers = fileTree("griffon-app/controllers").getFiles().collect {
|
|
className(it, "griffon-app/controllers")
|
|
}.sort()
|
|
|
|
def manifest = file("$buildDir/griffonManifest")
|
|
manifest.mkdirs()
|
|
|
|
def controllerFile = new File(manifest, "griffon.core.artifact.GriffonController")
|
|
controllerFile.withPrintWriter("US-ASCII", {writer ->
|
|
controllers.each {controller ->
|
|
writer.print(controller)
|
|
writer.print('\n')
|
|
}
|
|
})
|
|
|
|
def modelsFile = new File(manifest, "griffon.core.artifact.GriffonModel")
|
|
modelsFile.withPrintWriter("US-ASCII", {writer ->
|
|
models.each {model ->
|
|
writer.print(model)
|
|
writer.print('\n')
|
|
}
|
|
})
|
|
|
|
def viewsFile = new File(manifest, "griffon.core.artifact.GriffonView")
|
|
viewsFile.withPrintWriter("US-ASCII", {writer ->
|
|
views.each {view ->
|
|
writer.print(view)
|
|
writer.print('\n')
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
jar {
|
|
dependsOn griffonManifest
|
|
from("$buildDir/griffonManifest") {
|
|
duplicatesStrategy = DuplicatesStrategy.INCLUDE
|
|
into ("META-INF/griffon")
|
|
}
|
|
}
|
|
|
|
shadowJar {
|
|
from("shadow/services") {
|
|
into ("META-INF/services")
|
|
}
|
|
}
|