mirror of
https://github.com/bisq-network/bisq.git
synced 2024-11-19 18:03:12 +01:00
2d4abbe143
The controlsfx is a huge JavaFX components library (0.83MB as JAR). Turns out, we only use a single component, the PopOver. Fortunately, the PopOver is self-contained and easy to pull out from controlsfx. This commit embeds the PopOver in the project and removes controlsfx dependency. The embedded version is exactly the same as previously used in the project, so no change in semantics should occur.
406 lines
14 KiB
Groovy
406 lines
14 KiB
Groovy
buildscript {
|
|
repositories {
|
|
jcenter()
|
|
}
|
|
dependencies {
|
|
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.10'
|
|
classpath 'com.google.gradle:osdetector-gradle-plugin:1.6.0'
|
|
classpath 'com.github.jengelman.gradle.plugins:shadow:4.0.2'
|
|
classpath files('gradle/witness/gradle-witness.jar')
|
|
classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.5.10.RELEASE'
|
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.41"
|
|
}
|
|
}
|
|
|
|
configure(rootProject) {
|
|
// remove the 'bisq-*' scripts and 'lib' dir generated by the 'installDist' task
|
|
task clean {
|
|
doLast {
|
|
delete fileTree(dir: rootProject.projectDir, include: 'bisq-*'), 'lib'
|
|
}
|
|
}
|
|
}
|
|
|
|
configure(subprojects) {
|
|
apply plugin: 'kotlin'
|
|
apply plugin: 'java'
|
|
apply plugin: 'com.google.osdetector'
|
|
|
|
sourceCompatibility = 1.10
|
|
|
|
ext { // in alphabetical order
|
|
bcVersion = '1.56'
|
|
bitcoinjVersion = 'a88d36d'
|
|
btcdCli4jVersion = '975ff5d4'
|
|
codecVersion = '1.9'
|
|
easybindVersion = '1.0.3'
|
|
easyVersion = '4.0.1'
|
|
findbugsVersion = '3.0.2'
|
|
firebaseVersion = '6.2.0'
|
|
fontawesomefxVersion = '8.0.0'
|
|
fontawesomefxCommonsVersion = '9.1.2'
|
|
fontawesomefxMaterialdesignfontVersion = '2.0.26-9.1.2'
|
|
guavaVersion = '20.0'
|
|
guiceVersion = '4.2.2'
|
|
hamcrestVersion = '1.3'
|
|
httpclientVersion = '4.5.3'
|
|
ioVersion = '2.4'
|
|
jacksonVersion = '2.8.10'
|
|
jcsvVersion = '1.4.0'
|
|
jetbrainsAnnotationsVersion = '13.0'
|
|
jfoenixVersion = '9.0.6'
|
|
joptVersion = '5.0.3'
|
|
jsonsimpleVersion = '1.1.1'
|
|
junitVersion = '4.12'
|
|
jupiterVersion = '5.3.2'
|
|
kotlinVersion = '1.3.41'
|
|
knowmXchangeVersion = '4.3.3'
|
|
langVersion = '3.4'
|
|
logbackVersion = '1.1.10'
|
|
lombokVersion = '1.18.2'
|
|
mockitoVersion = '3.0.0'
|
|
netlayerVersion = '0.6.5.2'
|
|
protobufVersion = '3.9.1'
|
|
pushyVersion = '0.13.2'
|
|
qrgenVersion = '1.3'
|
|
sarxosVersion = '0.3.12'
|
|
slf4jVersion = '1.7.22'
|
|
sparkVersion = '2.5.2'
|
|
springBootVersion = '1.5.10.RELEASE'
|
|
springVersion = '4.3.6.RELEASE'
|
|
|
|
os = osdetector.os == 'osx' ? 'mac' : osdetector.os == 'windows' ? 'win' : osdetector.os
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
maven { url 'https://jitpack.io' }
|
|
}
|
|
|
|
dependencies {
|
|
testCompile "junit:junit:$junitVersion"
|
|
}
|
|
|
|
tasks.withType(JavaCompile) {
|
|
options.encoding = 'UTF-8'
|
|
}
|
|
}
|
|
|
|
|
|
configure([project(':desktop'),
|
|
project(':monitor'),
|
|
project(':relay'),
|
|
project(':seednode'),
|
|
project(':statsnode'),
|
|
project(':pricenode')]) {
|
|
|
|
apply plugin: 'application'
|
|
|
|
build.dependsOn installDist
|
|
installDist.destinationDir = file('build/app')
|
|
distZip.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(
|
|
'cd "`dirname \\"$PRG\\"`/.." >/dev/null', 'cd "`dirname \\"$PRG\\"`" >/dev/null')
|
|
|
|
if (osdetector.os != 'windows')
|
|
delete fileTree(dir: rootProject.projectDir, include: 'bisq-*.bat')
|
|
else
|
|
delete fileTree(dir: rootProject.projectDir, include: 'bisq-*', exclude: '*.bat')
|
|
}
|
|
}
|
|
|
|
startScripts {
|
|
// rename scripts from, e.g. `desktop` to `bisq-desktop`
|
|
applicationName = "bisq-$applicationName"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':assets')) {
|
|
dependencies {
|
|
compile("com.github.bisq-network.bitcoinj:bitcoinj-core:$bitcoinjVersion") {
|
|
exclude(module: 'jsr305')
|
|
exclude(module: 'slf4j-api')
|
|
exclude(module: 'guava')
|
|
exclude(module: 'protobuf-java')
|
|
}
|
|
compile "com.google.guava:guava:$guavaVersion"
|
|
compile "org.slf4j:slf4j-api:$slf4jVersion"
|
|
compile "org.apache.commons:commons-lang3:$langVersion"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':common')) {
|
|
apply plugin: 'com.google.protobuf'
|
|
|
|
sourceSets.main.java.srcDir "$buildDir/generated/source/proto/main/java"
|
|
|
|
protobuf {
|
|
protoc {
|
|
artifact = "com.google.protobuf:protoc:$protobufVersion"
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
|
|
compile "org.openjfx:javafx-base:11:$os"
|
|
compile "org.openjfx:javafx-graphics:11:$os"
|
|
compile "com.google.protobuf:protobuf-java:$protobufVersion"
|
|
compile 'com.google.code.gson:gson:2.7'
|
|
compile "org.springframework:spring-core:$springVersion"
|
|
compile "org.slf4j:slf4j-api:$slf4jVersion"
|
|
compile "ch.qos.logback:logback-core:$logbackVersion"
|
|
compile "ch.qos.logback:logback-classic:$logbackVersion"
|
|
compile "com.google.code.findbugs:jsr305:$findbugsVersion"
|
|
compile "com.google.guava:guava:$guavaVersion"
|
|
compile("com.google.inject:guice:$guiceVersion") {
|
|
exclude(module: 'guava')
|
|
}
|
|
compile("com.github.bisq-network.bitcoinj:bitcoinj-core:$bitcoinjVersion") {
|
|
exclude(module: 'jsr305')
|
|
exclude(module: 'slf4j-api')
|
|
exclude(module: 'guava')
|
|
exclude(module: 'protobuf-java')
|
|
}
|
|
compile "org.jetbrains:annotations:$jetbrainsAnnotationsVersion"
|
|
compile "org.bouncycastle:bcpg-jdk15on:$bcVersion"
|
|
compile "commons-io:commons-io:$ioVersion"
|
|
compile "org.apache.commons:commons-lang3:$langVersion"
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':p2p')) {
|
|
dependencies {
|
|
compile project(':common')
|
|
compile("com.github.JesusMcCloud.netlayer:tor.native:$netlayerVersion") {
|
|
exclude(module: 'slf4j-api')
|
|
}
|
|
compile("com.github.JesusMcCloud.netlayer:tor.external:$netlayerVersion") {
|
|
exclude(module: 'slf4j-api')
|
|
}
|
|
compile("org.apache.httpcomponents:httpclient:$httpclientVersion") {
|
|
exclude(module: 'commons-logging')
|
|
}
|
|
compile "net.sf.jopt-simple:jopt-simple:$joptVersion"
|
|
compile "org.fxmisc.easybind:easybind:$easybindVersion"
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
testCompileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
testCompile("org.mockito:mockito-core:$mockitoVersion")
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':core')) {
|
|
dependencies {
|
|
compile project(':assets')
|
|
compile project(':p2p')
|
|
compile "net.sf.jopt-simple:jopt-simple:$joptVersion"
|
|
compile("network.bisq.btcd-cli4j:btcd-cli4j-core:$btcdCli4jVersion") {
|
|
exclude(module: 'slf4j-api')
|
|
exclude(module: 'httpclient')
|
|
exclude(module: 'commons-lang3')
|
|
exclude(module: 'jackson-core')
|
|
exclude(module: 'jackson-annotations')
|
|
exclude(module: 'jackson-databind')
|
|
}
|
|
compile("network.bisq.btcd-cli4j:btcd-cli4j-daemon:$btcdCli4jVersion") {
|
|
exclude(module: 'slf4j-api')
|
|
exclude(module: 'httpclient')
|
|
exclude(module: 'commons-lang3')
|
|
exclude(module: 'jackson-core')
|
|
exclude(module: 'jackson-annotations')
|
|
exclude(module: 'jackson-databind')
|
|
}
|
|
compile "com.fasterxml.jackson.core:jackson-core:$jacksonVersion"
|
|
compile "com.fasterxml.jackson.core:jackson-annotations:$jacksonVersion"
|
|
compile("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") {
|
|
exclude(module: 'jackson-annotations')
|
|
}
|
|
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
|
|
testCompile "org.mockito:mockito-core:$mockitoVersion"
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
testCompile "com.natpryce:make-it-easy:$easyVersion"
|
|
testCompile group: 'org.hamcrest', name: 'hamcrest-all', version: "$hamcrestVersion"
|
|
testCompileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
}
|
|
|
|
test {
|
|
systemProperty 'jdk.attach.allowAttachSelf', true
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':desktop')) {
|
|
apply plugin: 'com.github.johnrengelman.shadow'
|
|
apply plugin: 'witness'
|
|
apply from: '../gradle/witness/gradle-witness.gradle'
|
|
|
|
version = '1.1.6-SNAPSHOT'
|
|
|
|
mainClassName = 'bisq.desktop.app.BisqAppMain'
|
|
|
|
tasks.withType(AbstractArchiveTask) {
|
|
preserveFileTimestamps = false
|
|
reproducibleFileOrder = true
|
|
}
|
|
|
|
sourceSets.main.resources.srcDirs += ['src/main/java'] // to copy fxml and css files
|
|
|
|
dependencies {
|
|
compile project(':core')
|
|
compile "net.glxn:qrgen:$qrgenVersion"
|
|
compile "de.jensd:fontawesomefx:$fontawesomefxVersion"
|
|
compile "de.jensd:fontawesomefx-commons:$fontawesomefxCommonsVersion"
|
|
compile "de.jensd:fontawesomefx-materialdesignfont:$fontawesomefxMaterialdesignfontVersion"
|
|
compile "com.googlecode.jcsv:jcsv:$jcsvVersion"
|
|
compile "com.github.sarxos:webcam-capture:$sarxosVersion"
|
|
compile "org.openjfx:javafx-controls:11:$os"
|
|
compile "org.openjfx:javafx-fxml:11:$os"
|
|
compile "org.openjfx:javafx-swing:11:$os"
|
|
compile "com.jfoenix:jfoenix:$jfoenixVersion"
|
|
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
|
|
testCompile "org.mockito:mockito-core:$mockitoVersion"
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
testCompile "com.natpryce:make-it-easy:$easyVersion"
|
|
testCompileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
}
|
|
|
|
test {
|
|
systemProperty 'jdk.attach.allowAttachSelf', true
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':monitor')) {
|
|
mainClassName = 'bisq.monitor.Monitor'
|
|
|
|
test {
|
|
useJUnitPlatform()
|
|
testLogging {
|
|
events "passed", "skipped", "failed"
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
compile project(':core')
|
|
compile "org.slf4j:slf4j-api:$slf4jVersion"
|
|
compile "ch.qos.logback:logback-core:$logbackVersion"
|
|
compile "ch.qos.logback:logback-classic:$logbackVersion"
|
|
compile "com.google.guava:guava:$guavaVersion"
|
|
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
|
|
testCompile "org.junit.jupiter:junit-jupiter-api:$jupiterVersion"
|
|
testCompile "org.junit.jupiter:junit-jupiter-params:$jupiterVersion"
|
|
testCompileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
testRuntime("org.junit.jupiter:junit-jupiter-engine:$jupiterVersion")
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':pricenode')) {
|
|
apply plugin: "org.springframework.boot"
|
|
|
|
version = file("src/main/resources/version.txt").text.trim()
|
|
|
|
jar.manifest.attributes(
|
|
"Implementation-Title": project.name,
|
|
"Implementation-Version": version)
|
|
|
|
dependencies {
|
|
compile project(":core")
|
|
compile("org.knowm.xchange:xchange-bitcoinaverage:$knowmXchangeVersion")
|
|
compile("org.knowm.xchange:xchange-coinmarketcap:$knowmXchangeVersion")
|
|
compile("org.knowm.xchange:xchange-poloniex:$knowmXchangeVersion")
|
|
compile("org.springframework.boot:spring-boot-starter-web:$springBootVersion")
|
|
compile("org.springframework.boot:spring-boot-starter-actuator")
|
|
}
|
|
|
|
task stage {
|
|
dependsOn assemble
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':relay')) {
|
|
mainClassName = 'bisq.relay.RelayMain'
|
|
|
|
dependencies {
|
|
compile project(':common')
|
|
compile "com.sparkjava:spark-core:$sparkVersion"
|
|
compile "com.turo:pushy:$pushyVersion"
|
|
compile "com.google.firebase:firebase-admin:$firebaseVersion"
|
|
compile "commons-codec:commons-codec:$codecVersion"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':seednode')) {
|
|
apply plugin: 'com.github.johnrengelman.shadow'
|
|
|
|
mainClassName = 'bisq.seednode.SeedNodeMain'
|
|
|
|
dependencies {
|
|
compile project(':core')
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
testCompile "org.springframework:spring-test:$springVersion"
|
|
}
|
|
}
|
|
|
|
|
|
configure(project(':statsnode')) {
|
|
mainClassName = 'bisq.statistics.StatisticsMain'
|
|
|
|
dependencies {
|
|
compile project(':core')
|
|
compileOnly "org.projectlombok:lombok:$lombokVersion"
|
|
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
|
|
}
|
|
}
|