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 { 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().dependencies extensions.configure { 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) } } } } } }