refactor(build-logic): massage around some types and extensions

This commit is contained in:
Harsh Shandilya 2022-12-04 20:24:28 +05:30
parent 1267cf81e3
commit a8ba0ed3d9
No known key found for this signature in database
7 changed files with 26 additions and 21 deletions

View file

@ -8,17 +8,18 @@
package dev.msfjarvis.claw.gradle package dev.msfjarvis.claw.gradle
import com.android.build.api.dsl.ApplicationExtension
import com.android.build.api.dsl.LibraryExtension import com.android.build.api.dsl.LibraryExtension
import com.android.build.api.dsl.Lint import com.android.build.api.dsl.Lint
import com.android.build.api.variant.ApplicationAndroidComponentsExtension import com.android.build.api.variant.ApplicationAndroidComponentsExtension
import com.android.build.api.variant.LibraryAndroidComponentsExtension import com.android.build.api.variant.LibraryAndroidComponentsExtension
import com.android.build.gradle.BaseExtension import com.android.build.gradle.BaseExtension
import com.android.build.gradle.internal.dsl.BaseAppModuleExtension
import org.gradle.android.AndroidCacheFixPlugin import org.gradle.android.AndroidCacheFixPlugin
import org.gradle.api.JavaVersion import org.gradle.api.JavaVersion
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.findByType import org.gradle.kotlin.dsl.findByType
private const val SLIM_TESTS_PROPERTY = "slimTests" private const val SLIM_TESTS_PROPERTY = "slimTests"
@ -34,7 +35,7 @@ class AndroidCommonPlugin : Plugin<Project> {
override fun apply(project: Project) { override fun apply(project: Project) {
project.configureSlimTests() project.configureSlimTests()
project.pluginManager.apply(AndroidCacheFixPlugin::class) project.pluginManager.apply(AndroidCacheFixPlugin::class)
project.extensions.findByType<BaseExtension>()?.run { project.extensions.configure<BaseExtension> {
compileSdkVersion(COMPILE_SDK) compileSdkVersion(COMPILE_SDK)
defaultConfig { defaultConfig {
minSdk = MIN_SDK minSdk = MIN_SDK
@ -60,7 +61,7 @@ class AndroidCommonPlugin : Plugin<Project> {
unitTests.isReturnDefaultValues = true unitTests.isReturnDefaultValues = true
} }
} }
project.extensions.findByType<BaseAppModuleExtension>()?.run { lint.configureLint(project) } project.extensions.findByType<ApplicationExtension>()?.run { lint.configureLint(project) }
project.extensions.findByType<LibraryExtension>()?.run { lint.configureLint(project) } project.extensions.findByType<LibraryExtension>()?.run { lint.configureLint(project) }
} }
} }

View file

@ -8,13 +8,13 @@
package dev.msfjarvis.claw.gradle package dev.msfjarvis.claw.gradle
import com.android.build.api.dsl.ApplicationExtension
import com.android.build.gradle.AppPlugin import com.android.build.gradle.AppPlugin
import com.android.build.gradle.internal.dsl.BaseAppModuleExtension
import dev.msfjarvis.claw.gradle.signing.configureBuildSigning import dev.msfjarvis.claw.gradle.signing.configureBuildSigning
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.configure
@Suppress("Unused") @Suppress("Unused")
class ApplicationPlugin : Plugin<Project> { class ApplicationPlugin : Plugin<Project> {
@ -22,8 +22,8 @@ class ApplicationPlugin : Plugin<Project> {
override fun apply(project: Project) { override fun apply(project: Project) {
project.pluginManager.apply(AppPlugin::class) project.pluginManager.apply(AppPlugin::class)
project.pluginManager.apply(AndroidCommonPlugin::class) project.pluginManager.apply(AndroidCommonPlugin::class)
project.extensions.getByType<BaseAppModuleExtension>().run { project.extensions.configure<ApplicationExtension> {
adbOptions.installOptions("--user 0") installation.installOptions("--user 0")
dependenciesInfo { dependenciesInfo {
includeInBundle = false includeInBundle = false

View file

@ -13,7 +13,7 @@ import nl.littlerobots.vcu.plugin.VersionCatalogUpdatePlugin
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.withType import org.gradle.kotlin.dsl.withType
@Suppress("Unused") @Suppress("Unused")
@ -31,7 +31,7 @@ class DependencyUpdatesPlugin : Plugin<Project> {
} }
checkForGradleUpdate = true checkForGradleUpdate = true
} }
project.extensions.getByType<VersionCatalogUpdateExtension>().run { project.extensions.configure<VersionCatalogUpdateExtension> {
keep.keepUnusedLibraries.set(true) keep.keepUnusedLibraries.set(true)
} }
} }

View file

@ -9,7 +9,7 @@ package dev.msfjarvis.claw.gradle
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.configure
import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin import org.jetbrains.kotlin.gradle.internal.Kapt3GradleSubplugin
import org.jetbrains.kotlin.gradle.plugin.KaptExtension import org.jetbrains.kotlin.gradle.plugin.KaptExtension
import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPluginWrapper
@ -23,7 +23,7 @@ class KotlinKaptPlugin : Plugin<Project> {
apply(Kapt3GradleSubplugin::class) apply(Kapt3GradleSubplugin::class)
} }
project.afterEvaluate { project.afterEvaluate {
project.extensions.getByType<KaptExtension>().run { project.extensions.configure<KaptExtension> {
javacOptions { javacOptions {
if (hasDaggerCompilerDependency()) { if (hasDaggerCompilerDependency()) {
// https://dagger.dev/dev-guide/compiler-options#fastinit-mode // https://dagger.dev/dev-guide/compiler-options#fastinit-mode

View file

@ -14,7 +14,7 @@ import dev.msfjarvis.claw.gradle.artifacts.CollectBundleTask
import java.util.Locale import java.util.Locale
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.register import org.gradle.kotlin.dsl.register
@Suppress("Unused") @Suppress("Unused")
@ -22,7 +22,7 @@ class RenameArtifactsPlugin : Plugin<Project> {
override fun apply(project: Project) { override fun apply(project: Project) {
project.pluginManager.withPlugin("com.android.application") { project.pluginManager.withPlugin("com.android.application") {
project.extensions.getByType<ApplicationAndroidComponentsExtension>().run { project.extensions.configure<ApplicationAndroidComponentsExtension> {
onVariants { variant -> onVariants { variant ->
val taskPrefix = "collect${variant.name.capitalize(Locale.ROOT)}" val taskPrefix = "collect${variant.name.capitalize(Locale.ROOT)}"
project.tasks.register<CollectApksTask>("${taskPrefix}Apks") { project.tasks.register<CollectApksTask>("${taskPrefix}Apks") {

View file

@ -12,7 +12,7 @@ import org.gradle.api.GradleException
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.configure
@Suppress("Unused") @Suppress("Unused")
class SpotlessPlugin : Plugin<Project> { class SpotlessPlugin : Plugin<Project> {
@ -22,7 +22,7 @@ class SpotlessPlugin : Plugin<Project> {
throw GradleException("Spotless plugin must only be applied to the root project.") throw GradleException("Spotless plugin must only be applied to the root project.")
} }
project.pluginManager.apply(SpotlessPlugin::class) project.pluginManager.apply(SpotlessPlugin::class)
project.extensions.getByType<SpotlessExtension>().run { project.extensions.configure<SpotlessExtension> {
kotlin { kotlin {
ktfmt(KTFMT_VERSION).googleStyle() ktfmt(KTFMT_VERSION).googleStyle()
target("**/*.kt") target("**/*.kt")

View file

@ -14,7 +14,7 @@ import java.util.Properties
import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicBoolean
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.register import org.gradle.kotlin.dsl.register
import org.gradle.kotlin.dsl.withType import org.gradle.kotlin.dsl.withType
@ -46,11 +46,15 @@ class VersioningPlugin : Plugin<Project> {
} }
project.plugins.withType<AppPlugin> { project.plugins.withType<AppPlugin> {
androidAppPluginApplied.set(true) androidAppPluginApplied.set(true)
extensions.getByType<ApplicationAndroidComponentsExtension>().onVariants { variant -> extensions.configure<ApplicationAndroidComponentsExtension> {
val mainOutput = onVariants { variant ->
variant.outputs.single { it.outputType == VariantOutputConfiguration.OutputType.SINGLE } val mainOutput =
mainOutput.versionName.set(versionName) variant.outputs.single {
mainOutput.versionCode.set(versionCode) it.outputType == VariantOutputConfiguration.OutputType.SINGLE
}
mainOutput.versionName.set(versionName)
mainOutput.versionCode.set(versionCode)
}
} }
} }
val version = Semver(versionName) val version = Semver(versionName)