//ant.importBuild 'build.xml'
if (!hasProperty('mainClass')) {
    ext.mainClass = ''
}
configurations {
    corelibs
    optlibs
}
dependencies {
    corelibs project(':jme3-blender')
    corelibs project(':jme3-core')
    corelibs project(':jme3-desktop')
    corelibs project(':jme3-effects')
    corelibs project(':jme3-jbullet')
    corelibs project(':jme3-jogg')
    corelibs project(':jme3-lwjgl')
    corelibs project(':jme3-networking')
    corelibs project(':jme3-niftygui')
    corelibs project(':jme3-plugins')
    corelibs project(':jme3-terrain')
    corelibs project(':jme3-testdata')
    optlibs project(':jme3-bullet')
    optlibs project(':jme3-jogl')
    
}
//task copyToLib << {
//    configurations.opt.resolvedConfiguration.resolvedArtifacts.each { artifact ->
//        copy {
//            from artifact.file
//            into '../dist/opt'
//            if(artifact.classifier != null){
//                rename { "${artifact.name}-${artifact.classifier}.${artifact.extension}" }
//            } else{
//                rename { "${artifact.name}.${artifact.extension}" }
//            }
//        }  
//    }
//}
//build.dependsOn copyToLib
artifacts {
//    jar null
}
//    
//    
//    
//    
//    
//configurations {
//    antlibs
//}
//dependencies {
//    antlibs filetree(dir: 'ant-lib', include: '*.jar')
//}
//
//ant.taskdef(resource: 'net/sf/antcontrib/antcontrib.properties', classpath: configurations.antlibs.asPath)
//ant.taskdef(name: 'deb', classname: 'com.googlecode.ant_deb_task.Deb', classpath: configurations.antlibs.asPath)
//ant.taskdef(name: 'gcupload', classname: 'net.bluecow.googlecode.ant.GoogleCodeUploadTask', classpath: configurations.antlibs.asPath)
//ant.taskdef(name: 'desktopentry', classname: 'com.googlecode.ant_deb_task.DesktopEntry', classpath: configurations.antlibs.asPath)
//ant.importBuild 'build.xml'
ant.properties['plugins.version'] = jmeVersion
ant.properties['app.version']= jmeMainVersion + jmeVersionSuffix
//ant.properties.buildDir = buildDir
//ant.properties['buildDir'] = buildDir
//ant.property(name: 'buildDir', location: buildDir)
//ant.taskdef(resource: 'checkstyletask.properties') {
//    classpath {
//        fileset(dir: 'ant-lib', includes: '*.jar')
//    }
//}
//ant.checkstyle(config: 'checkstyle.xml') {
//    fileset(dir: 'src')
//}
//task copyFiles(type: Copy) {
//    from 'src/files'
//    into "$buildDir/files"
//    rename '(.*)-(.*).html', '$2/$1.html'
//    rename ~/(.*).template.(.*)/, '$1.$2'
//    rename { filename ->
//        filename.replace 'java', 'groovy'
//    }
//}
//task copyTaskWithPatterns(type: Copy) {
//    from 'src/main/webapp'
//    into 'build/explodedWar'
//    include '**/*.html'
//    include '**/*.jsp'
//    exclude { details -> details.file.name.endsWith('.html') && details.file.text.contains('staging') }
//}
task copyBaseLibs{
    description "Copies the library files needed to run the SDK to jme3-core-baselibs and jme3-core-libraries"
    dependsOn configurations.corelibs
    dependsOn configurations.optlibs
    
    // for each dependency in corelibs..
    project.configurations.corelibs.dependencies.each {dep ->
        // copy built jme3 jar files to jme3-core-baselibs
        dep.dependencyProject.configurations.archives.allArtifacts.each{ artifact->
            if(artifact.classifier == "sources"){
            } else if(artifact.classifier == "javadoc"){
            } else{
                copy {
                    from artifact.file
                    into "jme3-core-baselibs/release/modules/ext/"
                }
            }
        }
        // copy external jar files to jme3-core-libraries
        copy {
            from dep.dependencyProject.configurations.compile.copyRecursive({ !(it instanceof ProjectDependency); }).resolve()
            into "jme3-core-libraries/release/modules/ext/"
        }
    }
} 
//    project.configurations.collectMany { it.allDependencies }.findAll { it instanceof ProjectDependency }.each{
//        println it
//    }
//(type: Copy){
//    from project.configurations.compile
//    into "jme3-core-baselibs/release/modules/ext/"
//    include "**/jme3-**.jar"
//    exclude "**/jme3-android**.jar"
//    exclude "**/jme3-testdata**.jar"
//    exclude "**/jme3-bullet**.jar"
//    exclude "**/jme3-bullet-native**.jar"
//    exclude "**/jme3-android-native**.jar"
//    rename '(.*)-'+jmeVersion+'(.*)', '$1.jar'
//
////    println project.configurations.compile.findAll { !(it instanceof ProjectDependency); }
////    println project.configurations.compile.findAll { it.version.startsWith("1") }
//}
task copyExternalLibs{
//    println project.configurations.compile.findAll { it.name.startsWith("j") }
//    println project.configurations.compile.properties.each { k,v -> println v}
//    println project.configurations.compile.findAll { it.name.startsWith("l") }
//    from project.configurations.compile.findAll { !(it instanceof ProjectDependency); }
//    into "jme3-core-libraries/release/modules/ext/"
//    exclude "**/jme3-**.jar"
}
task copyProjectBaseLibs(type: Copy){
//    description "Copies the jar files needed to supply the J2SE Libraries in the SDK to jme3-project-baselibs and jme3-project-libraries"
//    project.configurations.corelibs.dependencies.each {dep ->
//        copy {
//            from dep.dependencyProject.configurations.compile.copyRecursive({ !(it instanceof ProjectDependency); }).resolve()
//            into "jme3-project-libraries/release/libs/"
//        }
//        dep.dependencyProject.configurations.archives.allArtifacts.each{ artifact->
//            if(artifact.classifier == "sources"){
//            } else if(artifact.classifier == "javadoc"){
//            } else{
//                copy {
//                    from artifact.file
//                    into "jme3-core-baselibs/release/modules/ext/"
//                }
//            }
//        }
//    }
}
task copyProjectExternalLibs{
//    println project.configurations.compile.findAll { it.name.startsWith("j") }
//    println project.configurations.compile.properties.each { k,v -> println v}
//    println project.configurations.compile.findAll { it.name.startsWith("l") }
//    from project.configurations.compile.findAll { !(it instanceof ProjectDependency); }
//    into "jme3-core-libraries/release/modules/ext/"
//    exclude "**/jme3-**.jar"
}
task copyTestData{
    
}
task copyJavaDoc{
    
}
task buildSdk(){
//    ant.ant(dir: ".", antfile: "build.xml", target: "hudson-stable")
}
task cleanSdk(){
//    ant.ant(dir: ".", antfile: "build.xml", target: "clean")
}
jar.dependsOn([copyBaseLibs, copyExternalLibs, buildSdk])
clean.dependsOn(cleanSdk);
//    
//        
//            
//            
//            
//            
//            
//        
//        
//            
//            
//            
//            
//            
//            
//            
//        
//        
//            
//        
//        
//            
//        
//        
//            
//        
//        
//            
//        
//        
//            
//            
//        
//        Clearing old files
//        
//        
//        
//        
//        
//        
//
//        Copying jMonkeyPlatform jME3 libs
//        
//            
//            
//            
//        
//
//        Copying jMonkeyPlatform external libraries
//        
//            
//        
//
//        Copying Project jME3 libs
//        
//            
//            
//        
//
//        Copying Project external libraries
//        
//            
//            
//            
//        
//
//        Copying Test Project Data
//        
//            
//        
//
//        Copying Javadoc
//        
//            
//        
//        
//
//        
//            
//            
//            
//            
//            
//            
//            
//            
//            
//            
//            
//            
//            
//            
//            
//        
//        
//
//        
//            
//            
//            
//            
//            
//                
//                
//            
//        
//
//        Copying Test Examples
//        
//            
//                
//            
//        
//        
//            
//                
//            
//        
//