//
// This file is to be applied to every subproject.
//

apply plugin: 'java'
apply plugin: 'maven'

group = 'com.jme3'
version = jmePomVersion

sourceCompatibility = '1.6'
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

repositories {
    mavenCentral()
    maven {
        url "http://nifty-gui.sourceforge.net/nifty-maven-repo"
    }
}

configurations {
    deployerJars
}

dependencies {
    // Adding dependencies here will add the dependencies to each subproject.
    testCompile group: 'junit', name: 'junit', version: '4.12'
    testCompile group: 'org.mockito', name: 'mockito-core', version: '2.0.28-beta'
    testCompile group: 'org.easytesting', name: 'fest-assert-core', version: '2.0M10'
    deployerJars "org.apache.maven.wagon:wagon-ssh:2.9"
}

jar {
    manifest {
        attributes 'Implementation-Title': 'jMonkeyEngine',
                   'Implementation-Version': jmeFullVersion
    }
}

javadoc {
    failOnError = false
    options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
    options.docTitle = "jMonkeyEngine ${jmeMainVersion} ${project.name} Javadoc"
    options.windowTitle = "jMonkeyEngine ${jmeMainVersion} ${project.name} Javadoc"
    options.header = "<b>jMonkeyEngine ${jmeMainVersion} ${project.name}</b>"
    options.author = "true"
    options.use = "true"
    //disable doclint for JDK8, more quiet output
    if (JavaVersion.current().isJava8Compatible()){
        options.addStringOption('Xdoclint:none', '-quiet')
    }
}

task sourcesJar(type: Jar, dependsOn: classes, description: 'Creates a jar from the source files.') {
    classifier = 'sources'
    from sourceSets*.allSource
}

task javadocJar(type: Jar, dependsOn: javadoc, description: 'Creates a jar from the javadoc files.') {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives jar
    archives sourcesJar
    if(buildJavaDoc == "true"){
        archives javadocJar
    }
}

uploadArchives {
    repositories.mavenDeployer {
        configuration = configurations.deployerJars
        
        // disable this otherwise it will fill up the server with stale jars
        uniqueVersion = false
        
        repository(url: "scp://updates.jmonkeyengine.org/var/www/updates/maven") {
             authentication(userName: "www-updater", privateKey: "private/www-updater.key")
        }
        
        pom.project {
            name POM_NAME
            description POM_DESCRIPTION
            url POM_URL
            scm {
                url POM_SCM_URL
                connection POM_SCM_CONNECTION
                developerConnection POM_SCM_DEVELOPER_CONNECTION
            }
            licenses {
                license {
                    name POM_LICENSE_NAME
                    url POM_LICENSE_URL
                    distribution POM_LICENSE_DISTRIBUTION
                }
            }
        }
    }
}

task createFolders(description: 'Creates the source folders if they do not exist.') doLast {
//    sourceSets*.allSource*.srcDirs*.each { File srcDir ->
//        if (!srcDir.isDirectory()) {
//            println "Creating source folder: ${srcDir}"
//            srcDir.mkdirs()
//        }
//    }
}