import mihon.gradle.configurations.configureAndroid import mihon.gradle.configurations.configureKotlin import mihon.gradle.extensions.alias import mihon.gradle.extensions.configureTest import mihon.gradle.extensions.libs import mihon.gradle.extensions.plugins import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.configure import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension @Suppress("UNUSED") class PluginKotlinMultiplatform : Plugin { override fun apply(target: Project): Unit = with(target) { plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.multiplatform) } configureKotlin() configureTest() configureAndroid() kotlin { @OptIn(ExperimentalKotlinGradlePluginApi::class) applyDefaultHierarchyTemplate() androidTarget() } } } private fun Project.kotlin(block: KotlinMultiplatformExtension.() -> Unit) { extensions.configure(block) }