mirror of
https://github.com/bisq-network/bisq.git
synced 2024-11-19 09:52:23 +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