From 4f2af9396dc16d6f7d997086ec241566c0f3204b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mi=C5=82osz=20Lewandowski?= Date: Mon, 16 Sep 2024 16:24:21 +0200 Subject: [PATCH] Add possibility to disable auto-application of Moshi dependency (#662) --- moshi-ir/README.md | 2 ++ .../moshix/ir/gradle/MoshiGradlePluginExtension.kt | 6 ++++++ .../moshix/ir/gradle/MoshiGradleSubplugin.kt | 11 +++++++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/moshi-ir/README.md b/moshi-ir/README.md index e6e5d535..27d84501 100644 --- a/moshi-ir/README.md +++ b/moshi-ir/README.md @@ -40,6 +40,8 @@ plugins { moshi { // Opt-in to enable moshi-sealed, disabled by default. enableSealed.set(true) + // Opt-out to disable auto-application of Moshi dependency, enabled by default. + applyMoshiDependency.set(false) } ``` diff --git a/moshi-ir/moshi-gradle-plugin/src/main/kotlin/dev/zacsweers/moshix/ir/gradle/MoshiGradlePluginExtension.kt b/moshi-ir/moshi-gradle-plugin/src/main/kotlin/dev/zacsweers/moshix/ir/gradle/MoshiGradlePluginExtension.kt index c07fdc61..43e5b050 100644 --- a/moshi-ir/moshi-gradle-plugin/src/main/kotlin/dev/zacsweers/moshix/ir/gradle/MoshiGradlePluginExtension.kt +++ b/moshi-ir/moshi-gradle-plugin/src/main/kotlin/dev/zacsweers/moshix/ir/gradle/MoshiGradlePluginExtension.kt @@ -21,4 +21,10 @@ abstract class MoshiPluginExtension @Inject constructor(objects: ObjectFactory) val generatedAnnotation: Property = objects.property(String::class.java) /** Enables moshi-sealed code gen. Disabled by default. */ val enableSealed: Property = objects.property(Boolean::class.java).convention(false) + /** + * Set this property to false to disable auto-application of the Moshi dependency. Enabled by + * default. + */ + val applyMoshiDependency: Property = + objects.property(Boolean::class.java).convention(true) } diff --git a/moshi-ir/moshi-gradle-plugin/src/main/kotlin/dev/zacsweers/moshix/ir/gradle/MoshiGradleSubplugin.kt b/moshi-ir/moshi-gradle-plugin/src/main/kotlin/dev/zacsweers/moshix/ir/gradle/MoshiGradleSubplugin.kt index 380f5dd9..233e0003 100644 --- a/moshi-ir/moshi-gradle-plugin/src/main/kotlin/dev/zacsweers/moshix/ir/gradle/MoshiGradleSubplugin.kt +++ b/moshi-ir/moshi-gradle-plugin/src/main/kotlin/dev/zacsweers/moshix/ir/gradle/MoshiGradleSubplugin.kt @@ -106,10 +106,13 @@ class MoshiGradleSubplugin : KotlinCompilerPluginSupportPlugin { val generatedAnnotation = extension.generatedAnnotation.orNull // Minimum Moshi version - project.dependencies.add( - kotlinCompilation.implementationConfigurationName, - "com.squareup.moshi:moshi:1.13.0", - ) + val applyMoshiDependency = extension.applyMoshiDependency.get() + if (applyMoshiDependency) { + project.dependencies.add( + kotlinCompilation.implementationConfigurationName, + "com.squareup.moshi:moshi:1.13.0", + ) + } val enableSealed = extension.enableSealed.get() if (enableSealed) {