129 lines
3.5 KiB
Groovy
129 lines
3.5 KiB
Groovy
/*
|
|
* Copyright 2024 by Patryk Goworowski and Patrick Michalik.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
android {
|
|
|
|
compileSdk library.target_sdk
|
|
|
|
defaultConfig {
|
|
minSdk library.min_sdk
|
|
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
}
|
|
|
|
buildTypes {
|
|
|
|
release {
|
|
minifyEnabled false
|
|
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
|
|
}
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
kotlinOptions {
|
|
jvmTarget = JavaVersion.VERSION_1_8.toString()
|
|
freeCompilerArgs = [
|
|
"-Xexplicit-api=strict",
|
|
"-opt-in=kotlin.RequiresOptIn",
|
|
]
|
|
}
|
|
}
|
|
|
|
ext {
|
|
getNamespace = this.&getNamespace
|
|
getArtifactId = this.&getArtifactId
|
|
customizePom = this.&customizePom
|
|
setUpRepositories = this.&setUpRepositories
|
|
setUpSigning = this.&setUpSigning
|
|
}
|
|
|
|
String getNamespace(Project project) {
|
|
return "${library.groupId}.${project.name.replace("-", ".")}"
|
|
}
|
|
|
|
String getArtifactId(Project project) {
|
|
return project.name
|
|
}
|
|
|
|
void customizePom(MavenPom pom) {
|
|
|
|
pom.name = "Vico"
|
|
pom.description = "A light and extensible chart library for Android."
|
|
pom.url = "https://github.com/patrykandpatrick/vico"
|
|
|
|
pom.licenses {
|
|
|
|
license {
|
|
name = "The Apache License, Version 2.0"
|
|
url = "http://www.apache.org/licenses/LICENSE-2.0.txt"
|
|
}
|
|
}
|
|
|
|
pom.scm {
|
|
connection = "scm:git:git://github.com/patrykandpatrick/vico.git"
|
|
developerConnection = "scm:git:ssh://github.com/patrykandpatrick/vico.git"
|
|
url = "https://github.com/patrykandpatrick/vico"
|
|
}
|
|
|
|
pom.developers {
|
|
|
|
developer {
|
|
id = "patrykgoworowski"
|
|
name = "Patryk Goworowski"
|
|
email = "contact@patrykgoworowski.pl"
|
|
}
|
|
|
|
developer {
|
|
id = "patrickmichalik"
|
|
name = "Patrick Michalik"
|
|
email = "contact@patrickmichalik.com"
|
|
}
|
|
}
|
|
}
|
|
|
|
boolean isReleaseVersion() {
|
|
return !project.version.endsWith("SNAPSHOT")
|
|
}
|
|
|
|
void setUpRepositories(RepositoryHandler handler) {
|
|
handler.maven {
|
|
def releaseUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
|
|
def snapshotUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
|
|
url = isReleaseVersion() ? releaseUrl : snapshotUrl
|
|
|
|
credentials {
|
|
username = findProperty("OSSRH_TOKEN")
|
|
password = findProperty("OSSRH_TOKEN_PASSWORD")
|
|
}
|
|
}
|
|
}
|
|
|
|
void setUpSigning(SigningExtension signing, MavenPublication publication) {
|
|
signing.setRequired {
|
|
isReleaseVersion() && gradle.taskGraph.allTasks.any { it.is(PublishToMavenRepository) }
|
|
}
|
|
|
|
def gpgKey = findProperty("GPG_KEY")
|
|
def gpgKeyPassword = findProperty("GPG_KEY_PASSWORD")
|
|
|
|
signing.useInMemoryPgpKeys(gpgKey, gpgKeyPassword)
|
|
signing.sign publication
|
|
}
|