From 32a59d0104d0d9c87e666d30ea71a4e7f1403e05 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Tue, 5 Mar 2024 22:45:46 +0530 Subject: [PATCH] refactor(build): remove uses of internal AGP APIs --- build-logic/lint-baseline.xml | 22 ------------------- .../claw/gradle/signing/AppSigning.kt | 15 +++++-------- .../gradle/versioning/VersioningPlugin.kt | 12 +++++----- 3 files changed, 11 insertions(+), 38 deletions(-) diff --git a/build-logic/lint-baseline.xml b/build-logic/lint-baseline.xml index bb8fe114..fb7b1470 100644 --- a/build-logic/lint-baseline.xml +++ b/build-logic/lint-baseline.xml @@ -1,26 +1,4 @@ - - - - - - - - diff --git a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/signing/AppSigning.kt b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/signing/AppSigning.kt index 553f7bb4..15b0ed90 100644 --- a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/signing/AppSigning.kt +++ b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/signing/AppSigning.kt @@ -6,32 +6,29 @@ */ package dev.msfjarvis.claw.gradle.signing -import com.android.build.gradle.internal.dsl.BaseAppModuleExtension +import com.android.build.api.dsl.ApplicationBuildType +import com.android.build.api.dsl.CommonExtension import java.util.Properties import org.gradle.api.Project -import org.gradle.kotlin.dsl.configure private const val KEYSTORE_CONFIG_PATH = "keystore.properties" /** Configure signing for all build types. */ -@Suppress("UnstableApiUsage") internal fun Project.configureBuildSigning() { val keystoreConfigFile = rootProject.layout.projectDirectory.file(KEYSTORE_CONFIG_PATH) if (keystoreConfigFile.asFile.exists()) { - extensions.configure { + extensions.configure>("android") { val contents = providers.fileContents(keystoreConfigFile).asText val keystoreProperties = Properties() keystoreProperties.load(contents.get().byteInputStream()) - signingConfigs { - register("release") { + val releaseSigningConfig = + signingConfigs.register("release") { keyAlias = keystoreProperties["keyAlias"] as String keyPassword = keystoreProperties["keyPassword"] as String storeFile = rootProject.file(keystoreProperties["storeFile"] as String) storePassword = keystoreProperties["storePassword"] as String } - } - val signingConfig = signingConfigs.getByName("release") - buildTypes.configureEach { setSigningConfig(signingConfig) } + buildTypes.configureEach { signingConfig = releaseSigningConfig.get() } } } } diff --git a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/versioning/VersioningPlugin.kt b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/versioning/VersioningPlugin.kt index 4f4b61af..99425904 100644 --- a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/versioning/VersioningPlugin.kt +++ b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/versioning/VersioningPlugin.kt @@ -8,7 +8,6 @@ package dev.msfjarvis.claw.gradle.versioning import com.android.build.api.variant.ApplicationAndroidComponentsExtension import com.android.build.api.variant.VariantOutputConfiguration -import com.android.build.gradle.internal.plugins.AppPlugin import com.github.zafarkhaja.semver.Version import java.util.Properties import java.util.concurrent.atomic.AtomicBoolean @@ -16,13 +15,12 @@ import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.register -import org.gradle.kotlin.dsl.withType /** - * A Gradle [Plugin] that takes a [Project] with the [AppPlugin] applied and dynamically sets the - * versionCode and versionName properties based on values read from a [VERSIONING_PROP_FILE] file in - * the [Project.getProjectDir] directory. It also adds Gradle tasks to bump the major, minor, and - * patch versions along with one to prepare the next snapshot. + * A Gradle [Plugin] that takes a [Project] with the `com.android.application` applied and + * dynamically sets the versionCode and versionName properties based on values read from a + * [VERSIONING_PROP_FILE] file in the [Project.getProjectDir] directory. It also adds Gradle tasks + * to bump the major, minor, and patch versions along with one to prepare the next snapshot. */ @Suppress("Unused") class VersioningPlugin : Plugin { @@ -54,7 +52,7 @@ class VersioningPlugin : Plugin { ) .map(String::toInt) - project.plugins.withType { + project.pluginManager.withPlugin("com.android.application") { androidAppPluginApplied.set(true) extensions.configure { onVariants { variant ->