plugins {
    id "org.jetbrains.kotlin.multiplatform"
    id "org.jetbrains.kotlin.plugin.serialization"
    id "com.google.devtools.ksp"
    id "org.jetbrains.dokka"
}

project.description = "Core part of tgbotapi with all (and only) required functionality for working with Telegram Bot API"

apply from: "$mppProjectWithSerializationPresetPath"
apply from: "$publishGradlePath"

kotlin {
    sourceSets {
        commonMain {
            dependencies {
                api libs.kotlin.coroutines
                api libs.kotlin.serialization
                api libs.kotlin.serialization.properties

                api libs.korlibs.klock
                api libs.korlibs.krypto
                api libs.uuid

                api libs.microutils.coroutines
                api libs.microutils.serialization.base64
                api libs.microutils.serialization.encapsulator
                api libs.microutils.serialization.typedSerializer
                api libs.microutils.ktor.common
                api libs.microutils.languageCodes

                api libs.ktor.client.core
            }
        }
        commonTest {
            dependencies {
                implementation project(":tgbotapi.utils")
            }
        }
        jvmMain {
            dependencies {
                api libs.ktor.server
                api libs.ktor.server.host.common

                api libs.ktor.client.cio

                api libs.javax.activation
            }
        }
    }
}

dependencies {
    add("kspJvm", project(":tgbotapi.ksp"))
}

ksp {
    arg("cctargetPackage", "dev.inmo.tgbotapi.extensions.utils")
    arg("ccoutputFileName", "ClassCastsNew")
    arg("ccoutputFolder", project(":tgbotapi.utils").file("src/commonMain/kotlin").absolutePath)
}