/* * 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 }