repositories {
    mavenCentral()
}

apply plugin: 'java'
apply plugin: 'kotlin'
apply plugin: 'application'

sourceCompatibility = 1.8
mainClassName = 'net.corda.explorer.Main'

// Use manual resource copying of log4j2.xml rather than source sets.
// This prevents problems in IntelliJ with regard to duplicate source roots.
processResources {
    from file("$rootDir/config/dev/log4j2.xml")
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre8:$kotlin_version"
    testCompile "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
    testCompile "junit:junit:$junit_version"

    // TornadoFX: A lightweight Kotlin framework for working with JavaFX UI's.
    compile 'no.tornado:tornadofx:1.5.9'

    // Corda Core: Data structures and basic types needed to work with Corda.
    compile project(':core')
    compile project(':client:jfx')
    compile project(':client:mock')
    compile project(':node-driver')
    compile project(':finance')

    // Additional CorDapps that will be displayed in the GUI.
    compile project(':samples:business-network-demo')

    // Capsule is a library for building independently executable fat JARs.
    // We only need this dependency to compile our Caplet against.
    compileOnly "co.paralleluniverse:capsule:$capsule_version"

    // FontAwesomeFX: The "FontAwesome" icon library.
    compile 'de.jensd:fontawesomefx-fontawesome:4.7.0'

    // ReactFX: Functional reactive UI programming.
    compile 'org.reactfx:reactfx:2.0-M5'
    compile 'org.fxmisc.easybind:easybind:1.0.3'

    // JFXtras: useful widgets including a calendar control.
    compile 'org.jfxtras:jfxtras-agenda:8.0-r5'
    compile 'org.jfxtras:jfxtras-font-roboto:8.0-r5'

    // Humanize: formatting
    compile 'com.github.mfornos:humanize-icu:1.2.2'

    // Controls FX: more java FX components http://fxexperience.com/controlsfx/
    compile 'org.controlsfx:controlsfx:8.40.12'
    compile 'commons-lang:commons-lang:2.6'
    // This provide com.apple.eawt stub for non-mac system.
    compile 'com.yuvimasory:orange-extensions:1.3.0'
}

task(runDemoNodes, dependsOn: 'classes', type: JavaExec) {
    main = 'net.corda.explorer.MainKt'
    classpath = sourceSets.main.runtimeClasspath
}

task(runSimulationNodes, dependsOn: 'classes', type: JavaExec) {
    main = 'net.corda.explorer.MainKt'
    classpath = sourceSets.main.runtimeClasspath
    args '-S'
}

task(runFlowTriageNodes, dependsOn: 'classes', type: JavaExec) {
    main = 'net.corda.explorer.MainKt'
    classpath = sourceSets.main.runtimeClasspath
    args '-F'
}

jar {
    manifest {
        attributes(
                'Automatic-Module-Name': 'net.corda.tools.explorer'
        )
    }
}