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) } } }