buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "net.ltgt.gradle:gradle-errorprone-plugin:0.0.13"
    }
}

apply plugin: "net.ltgt.errorprone"
apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
apply plugin: 'ivy-publish'
apply plugin: 'com.jfrog.artifactory'

version = VERSION_NAME

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.3'

    android {
        lintOptions {
            disable 'InvalidPackage'
            warning 'NewApi'
        }
    }

    defaultConfig {
        minSdkVersion 1
        targetSdkVersion 28
        versionName VERSION_NAME
    }

    externalNativeBuild {
        cmake {
            path 'CMakeLists.txt'
        }
    }
}

tasks.withType(JavaCompile) {
    options.compilerArgs += ["-Xep:StringSplitter:OFF"]
}

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

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
}

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

publishing {
    publications {
        ivyLib(IvyPublication) {
          from new org.gradle.api.internal.java.JavaLibrary(new org.gradle.api.internal.artifacts.publish.DefaultPublishArtifact(project.getName(), 'aar', 'aar', null, new Date(), new File("$buildDir/outputs/aar/${project.getName()}-release.aar"), assemble), project.configurations.implementation.getAllDependencies())
          artifact sourcesJar
          artifact javadocJar
        }

        lib(MavenPublication) {
          from new org.gradle.api.internal.java.JavaLibrary(new org.gradle.api.internal.artifacts.publish.DefaultPublishArtifact(project.getName(), 'aar', 'aar', null, new Date(), new File("$buildDir/outputs/aar/${project.getName()}-release.aar"), assemble), project.configurations.implementation.getAllDependencies())

            artifact sourcesJar
            artifact javadocJar

            pom.withXml {
                asNode().children().last() + {
                    resolveStrategy = Closure.DELEGATE_FIRST
                    description = 'Implementation of the Mockito Inline API for use on the Android Dalvik VM'
                    url 'https://github.com/linkedin/dexmaker'
                    scm {
                        url 'https://github.com/linkedin/dexmaker'
                        connection 'scm:git:git://github.com/linkedin/dexmaker.git'
                        developerConnection 'https://github.com/linkedin/dexmaker.git'
                    }
                    licenses {
                        license {
                            name 'The Apache Software License, Version 2.0'
                            url 'http://www.apache.org/license/LICENSE-2.0.txt'
                            distribution 'repo'
                        }
                    }

                    developers {
                        developer {
                            id 'com.linkedin'
                            name 'LinkedIn Corp'
                            email ''
                        }
                    }
                }
            }
        }
    }
}

repositories {
    jcenter()
    google()
}

dependencies {
    implementation project(':dexmaker')

    implementation 'org.mockito:mockito-core:2.21.0', { exclude group: 'net.bytebuddy' }
}