apply plugin: 'maven-publish'
apply plugin: 'signing'

afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                groupId = groupName
                artifactId = 'tunnel'
                version wireguardVersionName

                artifact sourcesJar
                artifact javadocJar

                from components.getByName("release")

                pom {
                    name = 'WireGuard Tunnel Library'
                    description = 'Embeddable tunnel library for WireGuard for Android'
                    url = 'https://www.wireguard.com/'

                    licenses {
                        license {
                            name = 'The Apache Software License, Version 2.0'
                            url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                            distribution = 'repo'
                        }
                    }
                    scm {
                        connection = 'scm:git:https://git.zx2c4.com/wireguard-android'
                        developerConnection = 'scm:git:https://git.zx2c4.com/wireguard-android'
                        url = 'https://git.zx2c4.com/wireguard-android'
                    }
                    developers {
                        organization {
                            name = 'WireGuard'
                            url = 'https://www.wireguard.com/'
                        }
                        developer {
                            name = 'WireGuard'
                            email = 'team@wireguard.com'
                        }
                    }
                }
            }
        }
        repositories {
            maven {
                name = "sonatype"
                url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
                credentials {
                    username = hasProperty('SONATYPE_USER') ? getProperty('SONATYPE_USER') : System.getenv('SONATYPE_USER')
                    password = hasProperty('SONATYPE_PASSWORD') ? getProperty('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD')
                }
            }
        }
    }
}

android.libraryVariants.all { variant ->
    if (variant.name == 'release') {
        task javadoc(type: Javadoc) {
            source = variant.javaCompileProvider.get().source
            classpath = files((android.bootClasspath.join(File.pathSeparator)))
            classpath += variant.javaCompileProvider.get().classpath
            title = 'Embeddable WireGuard Tunnel for Android v$wireguardVersionName'
        }
        task javadocJar(type: Jar, dependsOn: javadoc) {
            archiveClassifier = 'javadoc'
            from javadoc.destinationDir
        }
        task sourcesJar(type: Jar) {
            archiveClassifier = 'sources'
            from android.sourceSets.main.java.srcDirs
        }
    }
}

signing {
    useGpgCmd()
    sign publishing.publications
}