import com.google.devtools.ksp.gradle.KspTaskMetadata import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.library) alias(libs.plugins.ktorfit) alias(libs.plugins.ksp) alias(libs.plugins.kotlinx.serialization) alias(libs.plugins.detekt) } @OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class) kotlin { applyDefaultHierarchyTemplate() androidTarget { compilerOptions { jvmTarget.set(JvmTarget.JVM_1_8) } } listOf( iosX64(), iosArm64(), iosSimulatorArm64(), ).forEach { it.binaries.framework { baseName = "core.api" isStatic = true } } sourceSets { val commonMain by getting { dependencies { implementation(libs.koin.core) implementation(libs.kotlinx.serialization.json) implementation(libs.ktorfit.lib) implementation(libs.ktor.serialization) implementation(libs.ktor.contentnegotiation) implementation(libs.ktor.json) implementation(libs.ktor.logging) implementation(projects.core.utils) } } val commonTest by getting { dependencies { implementation(kotlin("test")) } } } } android { namespace = "com.livefast.eattrash.raccoonforlemmy.core.api" compileSdk = libs.versions.android.targetSdk .get() .toInt() defaultConfig { minSdk = libs.versions.android.minSdk .get() .toInt() } } dependencies { add("kspCommonMainMetadata", libs.ktorfit.ksp) add("kspAndroid", libs.ktorfit.ksp) add("kspIosX64", libs.ktorfit.ksp) add("kspIosArm64", libs.ktorfit.ksp) add("kspIosSimulatorArm64", libs.ktorfit.ksp) } kotlin.sourceSets.commonMain { kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") } tasks.withType { dependsOn(tasks.withType()) }