Extract application build setup to plugin

This commit is contained in:
Kirill Kamakin
2022-08-03 19:48:55 +02:00
parent e5230e4394
commit 4d53b10db0
10 changed files with 125 additions and 16 deletions

View File

@@ -0,0 +1,37 @@
@file:Suppress("UnstableApiUsage")
package gq.kirmanak.mealient
import com.android.build.api.dsl.CommonExtension
import org.gradle.api.Project
import org.gradle.api.plugins.ExtensionAware
import org.gradle.kotlin.dsl.dependencies
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
internal fun Project.configureKotlinAndroid(
commonExtension: CommonExtension<*, *, *, *>,
) {
commonExtension.apply {
compileSdk = Versions.COMPILE_SDK_VERSION
defaultConfig {
minSdk = Versions.MIN_SDK_VERSION
}
compileOptions {
isCoreLibraryDesugaringEnabled = true
}
kotlinOptions {
freeCompilerArgs = freeCompilerArgs + listOf("-opt-in=kotlin.RequiresOptIn")
}
dependencies {
add("coreLibraryDesugaring", libs.findLibrary("android-tools-desugar").get())
}
}
}
fun CommonExtension<*, *, *, *>.kotlinOptions(block: KotlinJvmOptions.() -> Unit) {
(this as ExtensionAware).extensions.configure("kotlinOptions", block)
}

View File

@@ -0,0 +1,15 @@
package gq.kirmanak.mealient
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalog
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.getByType
object Versions {
const val MIN_SDK_VERSION = 23
const val TARGET_SDK_VERSION = 32
const val COMPILE_SDK_VERSION = 32
}
val Project.libs: VersionCatalog
get() = extensions.getByType<VersionCatalogsExtension>().named("libs")