apply plugin: 'org.jetbrains.dokka'
apply plugin: 'kotlin'

dependencies {
    compile rootProject
}

dokka {
    moduleName = 'corda'
    outputDirectory = file("${rootProject.rootDir}/docs/build/html/api/kotlin")
    processConfigurations = ['compile']
    sourceDirs = files('../core/src/main/kotlin', '../client/jfx/src/main/kotlin', '../client/mock/src/main/kotlin', '../client/rpc/src/main/kotlin', '../node/src/main/kotlin', '../finance/src/main/kotlin', '../client/jackson/src/main/kotlin')
}

task dokkaJavadoc(type: org.jetbrains.dokka.gradle.DokkaTask) {
    moduleName = 'corda'
    outputFormat = "javadoc"
    outputDirectory = file("${rootProject.rootDir}/docs/build/html/api/javadoc")
    processConfigurations = ['compile']
    sourceDirs = files('../core/src/main/kotlin', '../client/jfx/src/main/kotlin', '../client/mock/src/main/kotlin', '../client/rpc/src/main/kotlin', '../node/src/main/kotlin', '../finance/src/main/kotlin', '../client/jackson/src/main/kotlin')
}

task buildDocs(dependsOn: ['apidocs', 'makeDocs'])
task apidocs(dependsOn: ['dokka', 'dokkaJavadoc'])

task makeDocs(type: Exec, dependsOn: ['installDocsiteRequirements']) {
    // TODO: Non-msys Windows script
    commandLine 'cmd', '/c', 'bash make-docsite.sh' // Windows
    commandLine 'bash', './make-docsite.sh' // Linux
}

task installDocsiteRequirements(type: Exec) {
    // TODO: Non-msys Windows script
    commandLine 'cmd', '/c', 'bash install-docsite-requirements.sh' // Windows
    commandLine 'bash', './install-docsite-requirements.sh' // Linux
}

apidocs.shouldRunAfter makeDocs