diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index dc20cca..3346e40 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -55,5 +55,9 @@ gradlePlugin { id = "droidmorning.feature" implementationClass = "com.peto.droidmorning.DroidMorningFeaturePlugin" } + register("droidmorningKoin") { + id = "droidmorning.koin" + implementationClass = "com.peto.droidmorning.KoinConventionPlugin" + } } } diff --git a/build-logic/convention/src/main/kotlin/com/peto/droidmorning/DroidMorningFeaturePlugin.kt b/build-logic/convention/src/main/kotlin/com/peto/droidmorning/DroidMorningFeaturePlugin.kt index c509129..c5a145d 100644 --- a/build-logic/convention/src/main/kotlin/com/peto/droidmorning/DroidMorningFeaturePlugin.kt +++ b/build-logic/convention/src/main/kotlin/com/peto/droidmorning/DroidMorningFeaturePlugin.kt @@ -1,7 +1,7 @@ package com.peto.droidmorning -import com.peto.droidmorning.extentions.bundle import com.peto.droidmorning.extentions.composeMultiplatformDependencies +import com.peto.droidmorning.extentions.koinDependencies import com.peto.droidmorning.extentions.library import com.peto.droidmorning.extentions.libs import com.peto.droidmorning.extentions.plugin @@ -23,6 +23,7 @@ class DroidMorningFeaturePlugin : Plugin { apply() apply() + apply() extensions.configure { sourceSets.apply { @@ -31,9 +32,7 @@ class DroidMorningFeaturePlugin : Plugin { implementation(libs.library("androidx-navigation-compose")) implementation(libs.library("androidx-lifecycle-viewmodel-compose")) implementation(libs.library("androidx-lifecycle-runtime-compose")) - - implementation(libs.bundle("koin")) - + implementation(libs.library("kotlinx-coroutines-core")) implementation(libs.library("kotlinx-serialization-json")) implementation(libs.library("kotlinx-collections-immutable")) @@ -43,7 +42,6 @@ class DroidMorningFeaturePlugin : Plugin { commonTest { dependencies { implementation(libs.library("kotlin-test")) - implementation(libs.library("koin-test")) implementation(libs.library("kotlinx-coroutines-test")) } } diff --git a/build-logic/convention/src/main/kotlin/com/peto/droidmorning/KoinConventionPlugin.kt b/build-logic/convention/src/main/kotlin/com/peto/droidmorning/KoinConventionPlugin.kt new file mode 100644 index 0000000..204ca54 --- /dev/null +++ b/build-logic/convention/src/main/kotlin/com/peto/droidmorning/KoinConventionPlugin.kt @@ -0,0 +1,11 @@ +package com.peto.droidmorning + +import com.peto.droidmorning.extentions.koinDependencies +import org.gradle.api.Plugin +import org.gradle.api.Project + +class KoinConventionPlugin : Plugin { + override fun apply(target: Project) = with(target) { + koinDependencies() + } +} diff --git a/build-logic/convention/src/main/kotlin/com/peto/droidmorning/extentions/ProjectExtensions.kt b/build-logic/convention/src/main/kotlin/com/peto/droidmorning/extentions/ProjectExtensions.kt index a11adea..0beef89 100644 --- a/build-logic/convention/src/main/kotlin/com/peto/droidmorning/extentions/ProjectExtensions.kt +++ b/build-logic/convention/src/main/kotlin/com/peto/droidmorning/extentions/ProjectExtensions.kt @@ -33,3 +33,20 @@ internal fun Project.composeMultiplatformDependencies() { dependencies.add(cfg.name, libs.library("compose-ui-tooling")) } } + +internal fun Project.koinDependencies() { + extensions.configure { + sourceSets.apply { + commonMain { + dependencies { + implementation(libs.bundle("koin")) + } + } + commonTest { + dependencies { + implementation(libs.library("koin-test")) + } + } + } + } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0bc1533..fb34cd9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -235,3 +235,4 @@ droidmorning-android-library = { id = "droidmorning.android.library" } droidmorning-kotlin-multiplatform = { id = "droidmorning.kotlin.multiplatform" } droidmorning-compose-multiplatform = { id = "droidmorning.compose.multiplatform" } droidmorning-feature = { id = "droidmorning.feature" } +droidmorning-koin = { id = "droidmorning.koin" }