49 lines
1.2 KiB
Kotlin
49 lines
1.2 KiB
Kotlin
package ru.shadowsparky
|
|
|
|
import org.gradle.api.Project
|
|
import org.gradle.kotlin.dsl.dependencies
|
|
|
|
private const val COMMON_MAIN = "kspCommonMainMetadata"
|
|
|
|
private const val KSP = "ksp"
|
|
private const val KSP_ANDROID = "kspAndroid"
|
|
private const val KSP_ANDROID_JVM = "kspAndroidJvm"
|
|
private const val KSP_WASM_JS = "kspWasmJs"
|
|
private const val KSP_JS = "kspJs"
|
|
private const val KSP_DESKTOP = "kspDesktop"
|
|
private const val KSP_JVM = "kspJvm"
|
|
|
|
private fun Project.hasConfig(name: String) = configurations.findByName(name) != null
|
|
|
|
internal fun Project.kspAllPlatforms(deps: Any) {
|
|
|
|
dependencies {
|
|
|
|
// common
|
|
if (hasConfig(COMMON_MAIN)) {
|
|
add(COMMON_MAIN, deps)
|
|
} else {
|
|
add(KSP, deps)
|
|
return@dependencies
|
|
}
|
|
|
|
// android
|
|
when {
|
|
hasConfig(KSP_ANDROID) -> add(KSP_ANDROID, deps)
|
|
hasConfig(KSP_ANDROID_JVM) -> add(KSP_ANDROID_JVM, deps)
|
|
}
|
|
|
|
// web
|
|
when {
|
|
hasConfig(KSP_WASM_JS) -> add(KSP_WASM_JS, deps)
|
|
hasConfig(KSP_JS) -> add(KSP_JS, deps)
|
|
}
|
|
|
|
// desktop
|
|
when {
|
|
hasConfig(KSP_DESKTOP) -> add(KSP_DESKTOP, deps)
|
|
hasConfig(KSP_JVM) -> add(KSP_JVM, deps)
|
|
}
|
|
}
|
|
}
|