/*
* Geekdroid is a utility library for development on the Android
* Platform.
*
* Copyright (C) 2017-2025 by Frederic-Charles Barthelery.
*
* This file is part of Geekdroid.
*
* Geekdroid 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.
*
* Geekdroid 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 Geekdroid. If not, see .
*/
plugins {
id("com.android.library")
kotlin("android")
kotlin("kapt")
id("com.geekorum.build.android-tests")
id("com.geekorum.build.android-avdl")
`maven-publish`
alias(libs.plugins.compose.compiler)
}
android {
val compileSdkInt: Int by rootProject.extra
compileSdk = compileSdkInt
namespace = "com.geekorum.geekdroid"
defaultConfig {
minSdk = 24
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android.txt"),
"proguard-rules.pro")
}
}
lint {
abortOnError = false
}
buildFeatures {
dataBinding = true
compose = true
}
packaging {
resources {
excludes += listOf("META-INF/LICENSE.md", "META-INF/LICENSE-notice.md")
}
}
publishing {
singleVariant("release") {
withSourcesJar()
}
singleVariant("debug") {
withSourcesJar()
}
}
}
kotlin {
jvmToolchain(17)
}
dependencies {
api(libs.recyclerview)
api(libs.material)
api(libs.constraintlayout)
api(libs.coordinatorlayout)
implementation(libs.annotation)
implementation(libs.core.ktx)
api(libs.fragment.ktx)
api(libs.okhttp)
implementation(libs.dagger.compiler)
kapt(libs.dagger.compiler)
implementation(platform(libs.kotlinx.coroutines.bom))
implementation(libs.kotlinx.coroutines.core)
api(libs.lifecycle.livedata.core.ktx)
api(libs.lifecycle.viewmodel.savedstate)
testImplementation(libs.core.testing)
implementation(libs.room.common)
implementation(libs.browser)
implementation(libs.work.runtime)
implementation(libs.preference.ktx)
// compose stuff
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.compose.material3)
implementation(libs.androidx.activity.compose)
testImplementation(libs.kotlinx.coroutines.test)
testImplementation(libs.turbine)
}
apply {
from("$projectDir/../config/source-archive.gradle")
}
publishing {
publications {
val pomConfiguration: (MavenPom).() -> Unit = {
name.set("Geekdroid")
description.set("An Android library used in various Android projects. ")
licenses {
license {
name.set("GPL-3.0-or-later")
url.set("https://www.gnu.org/licenses/gpl-3.0.html")
distribution.set("repo")
}
}
inceptionYear.set("2017")
}
register("release") {
afterEvaluate {
from(components["release"])
}
artifactId = "geekdroid"
pom(pomConfiguration)
}
register("debugSnapshot") {
afterEvaluate {
from(components["debug"])
}
artifactId = "geekdroid"
version = "$version-SNAPSHOT"
pom(pomConfiguration)
}
}
}