37 lines
1.5 KiB
Kotlin
37 lines
1.5 KiB
Kotlin
|
|
import dev.carlosmartino.plugins.libs
|
||
|
|
import org.gradle.api.Plugin
|
||
|
|
import org.gradle.api.Project
|
||
|
|
import org.gradle.kotlin.dsl.configure
|
||
|
|
import org.gradle.kotlin.dsl.getByType
|
||
|
|
import org.jetbrains.compose.ComposeExtension
|
||
|
|
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||
|
|
|
||
|
|
class ComposeMultiplatformConventionPlugin : Plugin<Project> {
|
||
|
|
override fun apply(target: Project) =
|
||
|
|
with(target) {
|
||
|
|
with(pluginManager) {
|
||
|
|
apply(libs.findPlugin("compose.plugin").get().get().pluginId)
|
||
|
|
apply(libs.findPlugin("compose.multiplatform").get().get().pluginId)
|
||
|
|
}
|
||
|
|
|
||
|
|
val composeDeps = extensions.getByType<ComposeExtension>().dependencies
|
||
|
|
|
||
|
|
extensions.configure<KotlinMultiplatformExtension> {
|
||
|
|
sourceSets.apply {
|
||
|
|
commonMain {
|
||
|
|
dependencies {
|
||
|
|
implementation(composeDeps.runtime)
|
||
|
|
implementation(composeDeps.foundation)
|
||
|
|
implementation(composeDeps.material3)
|
||
|
|
implementation(composeDeps.ui)
|
||
|
|
implementation(composeDeps.uiUtil)
|
||
|
|
implementation(composeDeps.animation)
|
||
|
|
implementation(composeDeps.animationGraphics)
|
||
|
|
implementation(composeDeps.components.resources)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|