2021-03-18 19:11:45 +01:00
|
|
|
/*
|
|
|
|
* * Copyright (c) 2021 Shabinder Singh
|
|
|
|
* * This program is free software: you can redistribute it and/or modify
|
|
|
|
* * it under the terms of the GNU General Public License as published by
|
|
|
|
* * the Free Software Foundation, either version 3 of the License, or
|
|
|
|
* * (at your option) any later version.
|
|
|
|
* *
|
|
|
|
* * This program is distributed in the hope that it will be useful,
|
|
|
|
* * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* * GNU General Public License for more details.
|
|
|
|
* *
|
|
|
|
* * You should have received a copy of the GNU General Public License
|
|
|
|
* * along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
2021-01-30 15:10:31 +01:00
|
|
|
apply plugin: 'maven'
|
|
|
|
apply plugin: 'maven-publish'
|
|
|
|
apply plugin: 'signing'
|
|
|
|
apply plugin: 'org.jetbrains.dokka'
|
|
|
|
|
|
|
|
|
|
|
|
dokka {
|
|
|
|
impliedPlatforms = ["Common"] // This will force platform tags for all non-common sources e.g. "JVM"
|
|
|
|
kotlinTasks {
|
|
|
|
// dokka fails to retrieve sources from MPP-tasks so they must be set empty to avoid exception
|
|
|
|
// use sourceRoot instead (see below)
|
|
|
|
[]
|
|
|
|
}
|
|
|
|
packageOptions {
|
|
|
|
prefix = "com.willowtreeapps.fuzzywuzzy"
|
|
|
|
suppress = true
|
|
|
|
}
|
|
|
|
sourceRoot {
|
|
|
|
// assuming there is only a single source dir...
|
|
|
|
path = kotlin.sourceSets.commonMain.kotlin.srcDirs[0]
|
|
|
|
platforms = ["Common"]
|
|
|
|
}
|
|
|
|
if (kotlin.sourceSets.getNames().contains("jvmMain")) {
|
|
|
|
sourceRoot {
|
|
|
|
// assuming there is only a single source dir...
|
|
|
|
path = kotlin.sourceSets.jvmMain.kotlin.srcDirs[0]
|
|
|
|
platforms = ["JVM"]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (kotlin.sourceSets.getNames().contains("jsMain")) {
|
|
|
|
sourceRoot {
|
|
|
|
// assuming there is only a single source dir...
|
|
|
|
path = kotlin.sourceSets.jsMain.kotlin.srcDirs[0]
|
|
|
|
platforms = ["js"]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (kotlin.sourceSets.getNames().contains("nativeMain")) {
|
|
|
|
sourceRoot {
|
|
|
|
// assuming there is only a single source dir...
|
|
|
|
path = kotlin.sourceSets.nativeMain.kotlin.srcDirs[0]
|
|
|
|
platforms = ["native"]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
def isReleaseBuild() {
|
|
|
|
return VERSION_NAME.contains("SNAPSHOT") == false
|
|
|
|
}
|
|
|
|
|
|
|
|
def getReleaseRepositoryUrl() {
|
|
|
|
return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL :
|
|
|
|
"https://oss.sonatype.org/service/local/staging/deploy/maven2/"
|
|
|
|
}
|
|
|
|
|
|
|
|
def getSnapshotRepositoryUrl() {
|
|
|
|
return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL :
|
|
|
|
"https://oss.sonatype.org/content/repositories/snapshots/"
|
|
|
|
}
|
|
|
|
|
|
|
|
def getRepositoryUsername() {
|
|
|
|
return hasProperty('SONATYPE_NEXUS_USERNAME') ? SONATYPE_NEXUS_USERNAME : ""
|
|
|
|
}
|
|
|
|
|
|
|
|
def getRepositoryPassword() {
|
|
|
|
return hasProperty('SONATYPE_NEXUS_PASSWORD') ? SONATYPE_NEXUS_PASSWORD : ""
|
|
|
|
}
|
|
|
|
|
|
|
|
task emptySourcesJar(type: Jar) {
|
|
|
|
classifier = 'sources'
|
|
|
|
}
|
|
|
|
|
|
|
|
task javadocsJar(type: Jar, dependsOn: dokka) {
|
|
|
|
classifier = 'javadoc'
|
|
|
|
from dokka.outputDirectory
|
|
|
|
}
|
|
|
|
|
|
|
|
signing {
|
|
|
|
required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
|
|
|
|
sign(publishing.publications)
|
|
|
|
}
|
|
|
|
|
|
|
|
publishing {
|
|
|
|
publications.all {
|
|
|
|
artifact javadocsJar
|
|
|
|
|
|
|
|
pom.withXml {
|
|
|
|
def root = asNode()
|
|
|
|
|
|
|
|
root.children().last() + {
|
|
|
|
resolveStrategy = Closure.DELEGATE_FIRST
|
|
|
|
|
|
|
|
description POM_DESCRIPTION
|
|
|
|
name POM_NAME
|
|
|
|
url POM_URL
|
|
|
|
licenses {
|
|
|
|
license {
|
|
|
|
name POM_LICENCE_NAME
|
|
|
|
url POM_LICENCE_URL
|
|
|
|
distribution POM_LICENCE_DIST
|
|
|
|
}
|
|
|
|
}
|
|
|
|
scm {
|
|
|
|
url POM_SCM_URL
|
|
|
|
connection POM_SCM_CONNECTION
|
|
|
|
developerConnection POM_SCM_DEV_CONNECTION
|
|
|
|
}
|
|
|
|
developers {
|
|
|
|
developer {
|
|
|
|
id POM_DEVELOPER_ID
|
|
|
|
name POM_DEVELOPER_NAME
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
afterEvaluate {
|
|
|
|
publications.getByName('kotlinMultiplatform') {
|
|
|
|
// Source jars are only created for platforms, not the common artifact.
|
|
|
|
artifact emptySourcesJar
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
repositories {
|
|
|
|
maven {
|
|
|
|
url isReleaseBuild() ? getReleaseRepositoryUrl() : getSnapshotRepositoryUrl()
|
|
|
|
credentials {
|
|
|
|
username getRepositoryUsername()
|
|
|
|
password getRepositoryPassword()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
maven {
|
|
|
|
name 'test'
|
|
|
|
url "file://${rootProject.buildDir}/localMaven"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|