diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts index 5420c52d..0562eaa0 100644 --- a/build-logic/build.gradle.kts +++ b/build-logic/build.gradle.kts @@ -71,4 +71,7 @@ dependencies { implementation(libs.build.spotless) implementation(libs.build.vcu) implementation(libs.build.versions) + + // Expose the generated version catalog API to the plugin. + implementation(files(libs::class.java.superclass.protectionDomain.codeSource.location)) } diff --git a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/AndroidCommonPlugin.kt b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/AndroidCommonPlugin.kt index 251cbe5a..e2a98c05 100644 --- a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/AndroidCommonPlugin.kt +++ b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/AndroidCommonPlugin.kt @@ -15,14 +15,13 @@ import com.android.build.api.variant.HasUnitTestBuilder import com.android.build.api.variant.LibraryAndroidComponentsExtension import com.android.build.gradle.BaseExtension import dev.msfjarvis.claw.gradle.LintConfig.configureLint +import org.gradle.accessors.dm.LibrariesForLibs import org.gradle.android.AndroidCacheFixPlugin import org.gradle.api.Plugin import org.gradle.api.Project -import org.gradle.api.artifacts.VersionCatalogsExtension import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.findByType -import org.gradle.kotlin.dsl.getByType class AndroidCommonPlugin : Plugin { @@ -59,10 +58,9 @@ class AndroidCommonPlugin : Plugin { } project.extensions.findByType()?.lint?.configureLint(project) project.extensions.findByType()?.lint?.configureLint(project) - val catalog = project.extensions.getByType() - val libs = catalog.named("libs") - project.dependencies.addProvider("lintChecks", libs.findLibrary("slack-compose-lints").get()) - project.dependencies.addProvider("lintChecks", libs.findLibrary("slack-lints").get()) + val libs = project.extensions.getByName("libs") as LibrariesForLibs + project.dependencies.addProvider("lintChecks", libs.slack.compose.lints) + project.dependencies.addProvider("lintChecks", libs.slack.lints) } private fun Project.configureSlimTests() { diff --git a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/SentryPlugin.kt b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/SentryPlugin.kt index aa81252a..2b45473c 100644 --- a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/SentryPlugin.kt +++ b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/SentryPlugin.kt @@ -10,20 +10,18 @@ import com.android.build.api.variant.ApplicationAndroidComponentsExtension import io.sentry.android.gradle.extensions.InstrumentationFeature import io.sentry.android.gradle.extensions.SentryPluginExtension import java.util.EnumSet +import org.gradle.accessors.dm.LibrariesForLibs import org.gradle.api.Plugin import org.gradle.api.Project -import org.gradle.api.artifacts.VersionCatalogsExtension import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.configure -import org.gradle.kotlin.dsl.getByType @Suppress("Unused") class SentryPlugin : Plugin { override fun apply(project: Project) { project.pluginManager.withPlugin("com.android.application") { - val catalog = project.extensions.getByType() - val libs = catalog.named("libs") + val libs = project.extensions.getByName("libs") as LibrariesForLibs project.extensions.configure { onVariants(selector().all()) { variant -> val sentryDsn = project.providers.environmentVariable(SENTRY_DSN_PROPERTY) @@ -52,13 +50,11 @@ class SentryPlugin : Plugin { experimentalGuardsquareSupport.set(false) autoInstallation { enabled.set(true) - sentryVersion.set(libs.findVersion("sentry-sdk").get().requiredVersion) + sentryVersion.set(libs.versions.sentry.sdk) } includeDependenciesReport.set(true) } - with(project.dependencies) { - addProvider("implementation", platform(libs.findLibrary("sentry-bom").get())) - } + with(project.dependencies) { addProvider("implementation", platform(libs.sentry.bom)) } } } diff --git a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/deps.ext.kt b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/deps.ext.kt index 2d419caa..d1b291ec 100644 --- a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/deps.ext.kt +++ b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/deps.ext.kt @@ -6,29 +6,27 @@ */ package dev.msfjarvis.claw.gradle +import org.gradle.accessors.dm.LibrariesForLibs import org.gradle.api.Project import org.gradle.api.artifacts.ExternalModuleDependency import org.gradle.api.artifacts.MinimalExternalModuleDependency -import org.gradle.api.artifacts.VersionCatalogsExtension import org.gradle.kotlin.dsl.DependencyHandlerScope import org.gradle.kotlin.dsl.exclude -import org.gradle.kotlin.dsl.getByType /** Extension function to configure JUnit5 dependencies with the Truth assertion library. */ fun DependencyHandlerScope.addTestDependencies(project: Project) { - val catalog = project.extensions.getByType() - val libs = catalog.named("libs") - addProvider("testImplementation", libs.findLibrary("junit-jupiter-api").get()) + val libs = project.extensions.getByName("libs") as LibrariesForLibs + addProvider("testImplementation", libs.junit.jupiter.api) addProvider( "testImplementation", - libs.findLibrary("truth").get(), + libs.truth, ) { exclude(group = "junit", module = "junit") } - addProvider("testRuntimeOnly", libs.findLibrary("junit-jupiter-engine").get()) + addProvider("testRuntimeOnly", libs.junit.jupiter.engine) addProvider( "testRuntimeOnly", - libs.findLibrary("junit-legacy").get(), + libs.junit.legacy, ) { // See https://github.com/google/truth/issues/333 because("Truth needs it")