{{#useAndroidMavenGradlePlugin}}
group = '{{groupId}}'
project.version = '{{artifactVersion}}'
{{/useAndroidMavenGradlePlugin}}

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        {{#androidGradleVersion}}
        classpath 'com.android.tools.build:gradle:{{{androidGradleVersion}}}'
        {{/androidGradleVersion}}
        {{^androidGradleVersion}}
        classpath 'com.android.tools.build:gradle:2.3.+'
        {{/androidGradleVersion}}
        {{#useAndroidMavenGradlePlugin}}
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
        {{/useAndroidMavenGradlePlugin}}
    }
}

allprojects {
    repositories {
        jcenter()
    }
}


apply plugin: 'com.android.library'
{{#useAndroidMavenGradlePlugin}}
apply plugin: 'com.github.dcendents.android-maven'
{{/useAndroidMavenGradlePlugin}}

android {
    {{#androidSdkVersion}}
    compileSdkVersion {{{androidSdkVersion}}}
    {{/androidSdkVersion}}
    {{^androidSdkVersion}}
    compileSdkVersion 25
    {{/androidSdkVersion}}
    {{#androidBuildToolsVersion}}
    buildToolsVersion '{{{androidBuildToolsVersion}}}'
    {{/androidBuildToolsVersion}}
    {{^androidBuildToolsVersion}}
    buildToolsVersion '25.0.2'
    {{/androidBuildToolsVersion}}
    useLibrary  'org.apache.http.legacy'
    defaultConfig {
        minSdkVersion 14
        {{#androidSdkVersion}}
        targetSdkVersion {{{androidSdkVersion}}}
        {{/androidSdkVersion}}
        {{^androidSdkVersion}}
        targetSdkVersion 25
        {{/androidSdkVersion}}
    }
    compileOptions {
        {{#java8}}
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
        {{/java8}}
        {{^java8}}
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
        {{/java8}}
    }

    // 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)
            }
        }
    }
}


ext {
    swagger_annotations_version = "1.5.0"
    gson_version = "2.3.1"
    httpclient_version = "4.5.2"
    httpcore_version = "4.4.4"
    junit_version = "4.12"
}

dependencies {
    compile "io.swagger:swagger-annotations:$swagger_annotations_version"
    compile "com.google.code.gson:gson:$gson_version"
    compile "org.apache.httpcomponents:httpcore:$httpcore_version"
    compile "org.apache.httpcomponents:httpclient:$httpclient_version"
    compile ("org.apache.httpcomponents:httpcore:$httpcore_version") {
        exclude(group: 'org.apache.httpcomponents', module: 'httpclient')
    }
    compile ("org.apache.httpcomponents:httpmime:$httpclient_version") {
        exclude(group: 'org.apache.httpcomponents', module: 'httpclient')
    }
    testCompile "junit:junit:$junit_version"
}

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);
    }
}

{{#useAndroidMavenGradlePlugin}}
task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

artifacts {
    archives sourcesJar
}
{{/useAndroidMavenGradlePlugin}}
