project.version = "$version"
project.group = "$group"

apply from: "$publish"

kotlin {
    jvm {
        compilations.main {
            kotlinOptions {
                jvmTarget = "17"
            }
        }
    }
    js (IR) {
        browser {
            testTask {
                useMocha {
                    timeout = "60000"
                }
            }
        }
        nodejs {
            testTask {
                useMocha {
                    timeout = "60000"
                }
            }
        }
    }
    androidTarget {
        publishAllLibraryVariants()
        compilations.all {
            kotlinOptions {
                jvmTarget = "17"
            }
        }
    }
    linuxX64()
    mingwX64()
    linuxArm64()

    sourceSets {
        commonMain {
            dependencies {
                implementation kotlin('stdlib')
                implementation compose.runtime
                api libs.kt.serialization
            }
        }
        commonTest {
            dependencies {
                implementation kotlin('test-common')
                implementation kotlin('test-annotations-common')
                implementation libs.kt.coroutines.test
            }
        }

        androidUnitTest {
            dependencies {
                implementation kotlin('test-junit')
                implementation libs.android.test.junit
                implementation libs.android.espresso
                implementation compose.uiTest
            }
        }
        androidInstrumentedTest {
            dependencies {
                implementation kotlin('test-junit')
                implementation libs.android.test.junit
                implementation libs.android.espresso
            }
        }
        jvmMain {
            dependencies {
                implementation compose.desktop.currentOs
            }
        }
        jvmTest {
            dependencies {
                implementation kotlin('test-junit')
                implementation compose.uiTest
            }
        }
        jsMain {
            dependencies {
                implementation compose.web.core
            }
        }
        jsTest {
            dependencies {
                implementation kotlin('test-js')
            }
        }
        nativeMain.dependsOn commonMain
        linuxX64Main.dependsOn nativeMain
        mingwX64Main.dependsOn nativeMain
        linuxArm64Main.dependsOn nativeMain

        androidMain.dependsOn jvmMain
    }
}

apply from: "$defaultAndroidSettings"

java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}