53 lines
1.8 KiB
Kotlin
53 lines
1.8 KiB
Kotlin
import com.android.build.api.dsl.KotlinMultiplatformAndroidLibraryTarget
|
|
import mihon.gradle.configurations.configureKotlin
|
|
import mihon.gradle.extensions.alias
|
|
import mihon.gradle.extensions.configureTest
|
|
import mihon.gradle.extensions.coreLibraryDesugaring
|
|
import mihon.gradle.extensions.libs
|
|
import mihon.gradle.extensions.mihonx
|
|
import mihon.gradle.extensions.plugins
|
|
import org.gradle.api.Plugin
|
|
import org.gradle.api.Project
|
|
import org.gradle.kotlin.dsl.configure
|
|
import org.gradle.kotlin.dsl.dependencies
|
|
import org.gradle.kotlin.dsl.withType
|
|
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
|
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
|
import kotlin.text.toInt
|
|
|
|
@Suppress("UNUSED")
|
|
class PluginKotlinMultiplatform : Plugin<Project> {
|
|
override fun apply(target: Project): Unit = with(target) {
|
|
plugins {
|
|
alias(libs.plugins.android.kmp.library)
|
|
alias(libs.plugins.kotlin.multiplatform)
|
|
}
|
|
|
|
configureKotlin()
|
|
configureTest()
|
|
|
|
kotlin {
|
|
@OptIn(ExperimentalKotlinGradlePluginApi::class)
|
|
applyDefaultHierarchyTemplate()
|
|
|
|
android {
|
|
minSdk = mihonx.versions.android.sdk.min.get().toInt()
|
|
compileSdk = mihonx.versions.android.sdk.compile.get().toInt()
|
|
enableCoreLibraryDesugaring = true
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
coreLibraryDesugaring(libs.android.desugar)
|
|
}
|
|
}
|
|
}
|
|
|
|
private fun Project.kotlin(block: KotlinMultiplatformExtension.() -> Unit) {
|
|
extensions.configure(block)
|
|
}
|
|
|
|
private fun KotlinMultiplatformExtension.android(block: KotlinMultiplatformAndroidLibraryTarget.() -> Unit) {
|
|
targets.withType<KotlinMultiplatformAndroidLibraryTarget>().configureEach(block)
|
|
}
|