Gradle: Centralize application setup

This commit is contained in:
Alva Swanson 2023-08-05 15:14:04 +02:00
parent 46399516e3
commit 9ce8f83719
No known key found for this signature in database
GPG Key ID: 004760E77F753090
7 changed files with 6 additions and 77 deletions

View File

@ -1,5 +1,5 @@
plugins { plugins {
id 'bisq.java-conventions' id 'bisq.application'
} }
mainClassName = 'bisq.apitest.ApiTestMain' mainClassName = 'bisq.apitest.ApiTestMain'

View File

@ -19,77 +19,6 @@ configure(rootProject) {
} }
} }
configure([project(':cli'),
project(':daemon'),
project(':desktop'),
project(':seednode'),
project(':statsnode'),
project(':apitest')]) {
apply plugin: 'application'
build.dependsOn installDist
installDist.destinationDir = file('build/app')
distZip.enabled = false
distTar.enabled = false
// the 'installDist' and 'startScripts' blocks below configure bisq executables to put
// generated shell scripts in the root project directory, such that users can easily
// discover and invoke e.g. ./bisq-desktop, ./bisq-seednode, etc.
// See https://stackoverflow.com/q/46327736 for details.
installDist {
doLast {
// copy generated shell scripts, e.g. `bisq-desktop` directly to the project
// root directory for discoverability and ease of use
copy {
from "$destinationDir/bin"
into rootProject.projectDir
}
// copy libs required for generated shell script classpaths to 'lib' dir under
// the project root directory
copy {
from "$destinationDir/lib"
into "${rootProject.projectDir}/lib"
}
// edit generated shell scripts such that they expect to be executed in the
// project root dir as opposed to a 'bin' subdirectory
def windowsScriptFile = file("${rootProject.projectDir}/bisq-${applicationName}.bat")
windowsScriptFile.text = windowsScriptFile.text.replace(
'set APP_HOME=%DIRNAME%..', 'set APP_HOME=%DIRNAME%')
def unixScriptFile = file("${rootProject.projectDir}/bisq-$applicationName")
unixScriptFile.text = unixScriptFile.text.replace(
'APP_HOME=$( cd "${APP_HOME:-./}.." && pwd -P ) || exit', 'APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit')
if (applicationName == 'desktop') {
def script = file("${rootProject.projectDir}/bisq-$applicationName")
script.text = script.text.replace(
'DEFAULT_JVM_OPTS=""', 'DEFAULT_JVM_OPTS="-XX:MaxRAM=8g -Xss1280k -XX:+UseG1GC ' +
'-XX:MaxHeapFreeRatio=10 -XX:MinHeapFreeRatio=5 -XX:+UseStringDeduplication ' +
'-Djava.net.preferIPv4Stack=true"')
}
if (applicationName == 'apitest') {
// Pass the logback config file as a system property to avoid chatty
// logback startup due to multiple logback.xml files in the classpath
// (:daemon & :cli).
def script = file("${rootProject.projectDir}/bisq-$applicationName")
script.text = script.text.replace(
'DEFAULT_JVM_OPTS=""', 'DEFAULT_JVM_OPTS="' +
'-Dlogback.configurationFile=apitest/build/resources/main/logback.xml"')
}
}
}
startScripts {
// rename scripts from, e.g. `desktop` to `bisq-desktop`
applicationName = "bisq-$applicationName"
}
}
if (hasProperty('buildScan')) { if (hasProperty('buildScan')) {
buildScan { buildScan {
termsOfServiceUrl = 'https://gradle.com/terms-of-service' termsOfServiceUrl = 'https://gradle.com/terms-of-service'

View File

@ -1,5 +1,5 @@
plugins { plugins {
id 'bisq.java-conventions' id 'bisq.application'
} }
distTar.enabled = true distTar.enabled = true

View File

@ -1,5 +1,5 @@
plugins { plugins {
id 'bisq.java-conventions' id 'bisq.application'
} }
distTar.enabled = true distTar.enabled = true

View File

@ -1,5 +1,5 @@
plugins { plugins {
id 'bisq.java-conventions' id 'bisq.application'
id 'bisq.javafx' id 'bisq.javafx'
} }

View File

@ -1,5 +1,5 @@
plugins { plugins {
id 'bisq.java-conventions' id 'bisq.application'
} }
mainClassName = 'bisq.seednode.SeedNodeMain' mainClassName = 'bisq.seednode.SeedNodeMain'

View File

@ -1,5 +1,5 @@
plugins { plugins {
id 'bisq.java-conventions' id 'bisq.application'
} }
mainClassName = 'bisq.statistics.StatisticsMain' mainClassName = 'bisq.statistics.StatisticsMain'