plugins {
    id "com.moowork.node" version "1.2.0"
    id 'com.github.kt3k.coveralls' version '2.8.2' // Coverage
}

apply plugin: 'java'

group 'de.inetsoftware'
archivesBaseName = 'jwebassembly-compiler'
version = '0.1'

repositories {
    jcenter()
}

dependencies {
    compile     'de.inetsoftware:jwebassembly-api:+'
    compile     'com.google.code.findbugs:jsr305:3.0.1'
    testCompile 'junit:junit:+'
}

sourceSets {
    main {
        java {
            srcDir 'src'
        }
        resources {
            srcDir 'src'
        }
    }
    test {
        java {
            srcDir 'test'
        }
        resources {
            srcDir 'test'
        }
    }
}

task sourcesJar(type: Jar, dependsOn: classes) {
    classifier = 'sources'
    from sourceSets.main.java
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

build {
    dependsOn sourcesJar
    dependsOn javadocJar
}

artifacts {
    archives sourcesJar
    archives javadocJar
}

node {
    version = '10.8.0'
//    version = '+'
    download = true
}

task nodeVersion(type: NodeTask) {
    test.dependsOn it
    options = ['-v']
    script = file('scriptDoesNotExists.js')
    doLast {
        if( node.download ) {
            def nodeDir = nodeSetup.getNodeDir() // dir is only valid if downloaded
            println nodeDir
            test.systemProperty 'node.dir', nodeDir
        }
    }
}

test {
    testLogging.showStandardStreams = true
    testLogging.exceptionFormat = 'full'
}


/****************************************
 * Coverage
 ****************************************/
apply plugin: 'jacoco'

jacocoTestReport {
    tasks.coveralls.dependsOn it
    reports {
        xml.enabled = true  // coveralls plugin depends on xml format report
        html.enabled = true
    }
}
check.dependsOn tasks.coveralls