From 36ab72226c4f8f0e6c46ce17aee0f3ffd67b5367 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Tue, 20 Dec 2022 16:01:18 +0530 Subject: [PATCH] refactor(build-logic): simplify plugin setup --- api/build.gradle.kts | 3 +-- build-logic/build.gradle.kts | 9 ++++----- .../{KotlinLibraryPlugin.kt => KotlinJvmPlugin.kt} | 8 ++++---- core/build.gradle.kts | 3 +-- coroutine-utils/build.gradle.kts | 5 +---- database/build.gradle.kts | 5 ++--- gradle/libs.versions.toml | 2 +- metadata-extractor/build.gradle.kts | 5 +---- model/build.gradle.kts | 5 ++--- 9 files changed, 17 insertions(+), 28 deletions(-) rename build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/{KotlinLibraryPlugin.kt => KotlinJvmPlugin.kt} (60%) diff --git a/api/build.gradle.kts b/api/build.gradle.kts index 751c065d..6246af98 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -7,8 +7,7 @@ @file:Suppress("DSL_SCOPE_VIOLATION", "UnstableApiUsage") plugins { - kotlin("android") - id("dev.msfjarvis.claw.kotlin-common") + id("dev.msfjarvis.claw.kotlin-android") id("dev.msfjarvis.claw.android-library") alias(libs.plugins.anvil) alias(libs.plugins.whetstone) diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts index b2bf9a5e..45b5a81f 100644 --- a/build-logic/build.gradle.kts +++ b/build-logic/build.gradle.kts @@ -47,14 +47,14 @@ gradlePlugin { id = "dev.msfjarvis.claw.kotlin-common" implementationClass = "dev.msfjarvis.claw.gradle.KotlinCommonPlugin" } + register("kotlin-jvm") { + id = "dev.msfjarvis.claw.kotlin-jvm" + implementationClass = "dev.msfjarvis.claw.gradle.KotlinJvmPlugin" + } register("kotlin-kapt") { id = "dev.msfjarvis.claw.kotlin-kapt" implementationClass = "dev.msfjarvis.claw.gradle.KotlinKaptPlugin" } - register("kotlin-library") { - id = "dev.msfjarvis.claw.kotlin-library" - implementationClass = "dev.msfjarvis.claw.gradle.KotlinLibraryPlugin" - } register("rename-artifacts") { id = "dev.msfjarvis.claw.rename-artifacts" implementationClass = "dev.msfjarvis.claw.gradle.RenameArtifactsPlugin" @@ -79,7 +79,6 @@ dependencies { implementation(libs.build.cachefix) implementation(libs.build.detekt) implementation(libs.build.kotlin.gradle) - implementation(libs.build.kotlin.serialization) implementation(libs.build.semver) implementation(libs.build.spotless) implementation(libs.build.vcu) diff --git a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/KotlinLibraryPlugin.kt b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/KotlinJvmPlugin.kt similarity index 60% rename from build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/KotlinLibraryPlugin.kt rename to build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/KotlinJvmPlugin.kt index 96b74a14..dae6a1ed 100644 --- a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/KotlinLibraryPlugin.kt +++ b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/KotlinJvmPlugin.kt @@ -8,12 +8,12 @@ package dev.msfjarvis.claw.gradle import org.gradle.api.Plugin import org.gradle.api.Project -import org.gradle.kotlin.dsl.apply +import org.jetbrains.kotlin.gradle.plugin.KotlinPluginWrapper @Suppress("Unused") -class KotlinLibraryPlugin : Plugin { - +class KotlinJvmPlugin : Plugin { override fun apply(project: Project) { - project.pluginManager.apply(KotlinCommonPlugin::class) + project.pluginManager.apply(KotlinPluginWrapper::class.java) + project.pluginManager.apply(KotlinCommonPlugin::class.java) } } diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 9f90cb50..942c2461 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -7,8 +7,7 @@ @file:Suppress("DSL_SCOPE_VIOLATION", "UnstableApiUsage") plugins { - kotlin("android") - id("dev.msfjarvis.claw.kotlin-common") + id("dev.msfjarvis.claw.kotlin-android") id("dev.msfjarvis.claw.android-library") alias(libs.plugins.anvil) alias(libs.plugins.whetstone) diff --git a/coroutine-utils/build.gradle.kts b/coroutine-utils/build.gradle.kts index 04085e18..e53fc681 100644 --- a/coroutine-utils/build.gradle.kts +++ b/coroutine-utils/build.gradle.kts @@ -4,10 +4,7 @@ * license that can be found in the LICENSE file or at * https://opensource.org/licenses/MIT. */ -plugins { - kotlin("jvm") - id("dev.msfjarvis.claw.kotlin-library") -} +plugins { id("dev.msfjarvis.claw.kotlin-jvm") } dependencies { api(libs.kotlinx.coroutines.core) diff --git a/database/build.gradle.kts b/database/build.gradle.kts index 1e04d11a..65149e67 100644 --- a/database/build.gradle.kts +++ b/database/build.gradle.kts @@ -7,11 +7,10 @@ @file:Suppress("DSL_SCOPE_VIOLATION", "UnstableApiUsage") plugins { - kotlin("android") - alias(libs.plugins.sqldelight) - id("dev.msfjarvis.claw.kotlin-common") + id("dev.msfjarvis.claw.kotlin-android") id("dev.msfjarvis.claw.android-library") alias(libs.plugins.anvil) + alias(libs.plugins.sqldelight) alias(libs.plugins.whetstone) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a4d1152e..a22a90ee 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -51,7 +51,6 @@ build-agp = { module = "com.android.tools.build:gradle", version.ref = "agp" } build-cachefix = "org.gradle.android.cache-fix:org.gradle.android.cache-fix.gradle.plugin:2.6.0" build-detekt = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.22.0" build-kotlin-gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } -build-kotlin-serialization = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "kotlin" } build-semver = "com.vdurmont:semver4j:3.1.0" build-spotless = "com.diffplug.spotless:spotless-plugin-gradle:6.12.0" build-vcu = "nl.littlerobots.version-catalog-update:nl.littlerobots.version-catalog-update.gradle.plugin:0.7.0" @@ -89,5 +88,6 @@ whetstone = { module = "com.deliveryhero.whetstone:whetstone", version.ref = "wh [plugins] android-test = { id = "com.android.test", version.ref = "agp" } anvil = "com.squareup.anvil:2.4.3" +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" } whetstone = { id = "dev.msfjarvis.whetstone", version.ref = "whetstone" } diff --git a/metadata-extractor/build.gradle.kts b/metadata-extractor/build.gradle.kts index 83bae82d..cd5df25b 100644 --- a/metadata-extractor/build.gradle.kts +++ b/metadata-extractor/build.gradle.kts @@ -6,10 +6,7 @@ */ @file:Suppress("DSL_SCOPE_VIOLATION", "UnstableApiUsage") -plugins { - kotlin("jvm") - id("dev.msfjarvis.claw.kotlin-library") -} +plugins { id("dev.msfjarvis.claw.kotlin-jvm") } dependencies { api(libs.crux) diff --git a/model/build.gradle.kts b/model/build.gradle.kts index 005ba1f2..7dc021ec 100644 --- a/model/build.gradle.kts +++ b/model/build.gradle.kts @@ -7,9 +7,8 @@ @file:Suppress("DSL_SCOPE_VIOLATION", "UnstableApiUsage") plugins { - kotlin("jvm") - kotlin("plugin.serialization") - id("dev.msfjarvis.claw.kotlin-common") + id("dev.msfjarvis.claw.kotlin-jvm") + alias(libs.plugins.kotlin.serialization) } dependencies { implementation(libs.kotlinx.serialization.core) }