buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        // Create OSGI bundles
        classpath "biz.aQute.bnd:biz.aQute.bnd.gradle:5.3.0"
        // Don't add implementation dependencies; checker-qual.jar should have no dependencies.
    }
}
plugins {
    id 'java-library'
}

apply plugin: 'biz.aQute.bnd.builder'

jar {
    manifest {
        attributes('Export-Package': '*')
    }
}

apply from: rootProject.file("gradle-mvn-push.gradle")

/** Adds information to the publication for uploading to Maven repositories. */
final checkerQualPom(publication) {
    sharedPublicationConfiguration(publication)
    publication.from components.java
    publication.pom {
        name = 'Checker Qual'
        description = 'checker-qual contains annotations (type qualifiers) that a programmer\n' +
                        'writes to specify Java code for type-checking by the Checker Framework.\n'
        licenses {
            license {
                name = 'The MIT License'
                url = 'http://opensource.org/licenses/MIT'
                distribution = 'repo'
            }
        }
    }
}
publishing {
    publications {
        checkerQual(MavenPublication) {
            checkerQualPom it
        }
    }
}
signing {
    sign publishing.publications.checkerQual
}
