mirror of
https://github.com/bisq-network/bisq.git
synced 2024-11-19 01:41:11 +01:00
build-logic: Create 'bisq.application' plugin
This commit is contained in:
parent
457c6f8a34
commit
46399516e3
65
build-logic/commons/src/main/groovy/bisq.application.gradle
Normal file
65
build-logic/commons/src/main/groovy/bisq.application.gradle
Normal file
@ -0,0 +1,65 @@
|
||||
plugins {
|
||||
id 'bisq.java-conventions'
|
||||
id '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"
|
||||
}
|
Loading…
Reference in New Issue
Block a user