apply plugin: 'idea'
apply plugin: 'eclipse'

group = '{{groupId}}'
version = '{{artifactVersion}}'

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.+'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
    }
}

repositories {
    jcenter()
}


if(hasProperty('target') && target == 'android') {

    apply plugin: 'com.android.library'
    apply plugin: 'com.github.dcendents.android-maven'
    
    android {
        compileSdkVersion 23
        buildToolsVersion '23.0.2'
        defaultConfig {
            minSdkVersion 14
            targetSdkVersion 23
        }
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_7
            targetCompatibility JavaVersion.VERSION_1_7
        }
    
        // Rename the aar correctly
        libraryVariants.all { variant ->
            variant.outputs.each { output ->
                def outputFile = output.outputFile
                if (outputFile != null && outputFile.name.endsWith('.aar')) {
                    def fileName = "${project.name}-${variant.baseName}-${version}.aar"
                    output.outputFile = new File(outputFile.parent, fileName)
                }
            }
        }

        dependencies {
            provided 'javax.annotation:jsr250-api:1.0'
        }
    }
    
    afterEvaluate {
        android.libraryVariants.all { variant ->
            def task = project.tasks.create "jar${variant.name.capitalize()}", Jar
            task.description = "Create jar artifact for ${variant.name}"
            task.dependsOn variant.javaCompile
            task.from variant.javaCompile.destinationDir
            task.destinationDir = project.file("${project.buildDir}/outputs/jar")
            task.archiveName = "${project.name}-${variant.baseName}-${version}.jar"
            artifacts.add('archives', task);
        }
    }
    
    task sourcesJar(type: Jar) {
        from android.sourceSets.main.java.srcDirs
        classifier = 'sources'
    }
    
    artifacts {
        archives sourcesJar
    }

} else {

    apply plugin: 'scala'
    apply plugin: 'java'
    apply plugin: 'maven'
    
    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7
    
    install {
        repositories.mavenInstaller {
            pom.artifactId = '{{artifactId}}'
        }
    }
    
    task execute(type:JavaExec) {
       main = System.getProperty('mainClass')
       classpath = sourceSets.main.runtimeClasspath
    }
}

ext {
    scala_version = "2.10.4"
    joda_version = "1.2"
    jodatime_version = "2.2"
    jersey_version = "1.19"
    swagger_core_version = "1.5.8"
    jersey_async_version = "1.0.5"
    jackson_version = "2.4.2"
    junit_version = "4.8.1"
    scala_test_version = "2.2.4"
    swagger_async_httpclient_version = "0.3.5"
}

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    compile "com.fasterxml.jackson.module:jackson-module-scala_2.10:$jackson_version"
    compile "com.sun.jersey:jersey-client:$jersey_version"
    compile "com.sun.jersey.contribs:jersey-multipart:$jersey_version"
    compile "org.jfarcand:jersey-ahc-client:$jersey_async_version"
    compile "org.scala-lang:scala-library:$scala_version"
    compile "io.swagger:swagger-core:$swagger_core_version"
    testCompile "org.scalatest:scalatest_2.10:$scala_test_version"
    testCompile "junit:junit:$junit_version"
    compile "joda-time:joda-time:$jodatime_version"
    compile "org.joda:joda-convert:$joda_version"
    compile "com.wordnik.swagger:swagger-async-httpclient_2.10:$swagger_async_httpclient_version"
}
