apply plugin: 'kotlin-multiplatform'
apply plugin: 'com.android.library'
apply plugin: 'kotlinx-serialization'
apply plugin: 'org.jetbrains.kotlin.native.cocoapods'

version = "1.0"

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"


    defaultConfig {
        minSdkVersion 18
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

}

kotlin {
    targets {
        final def iosTarget = System.getenv('SDK_NAME')?.startsWith("iphoneos") ? presets.iosArm64 : presets.iosX64

        fromPreset(iosTarget, 'ios') {
            binaries {
                framework('SharedCode') {
                    embedBitcode "bitcode"
                }
            }
        }

        fromPreset(presets.android, 'android')
    }

    sourceSets {
        commonMain.dependencies {
            implementation 'org.jetbrains.kotlin:kotlin-stdlib-common'
            implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.2'
            implementation 'org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:0.13.0'
            implementation 'io.ktor:ktor-client-core:1.2.2'
            implementation "io.ktor:ktor-client-json:1.2.2"
            implementation 'org.kodein.di:kodein-di-erased:6.4.1'
        }

        commonTest.dependencies {
            implementation 'org.jetbrains.kotlin:kotlin-test-common'
        }

        androidMain.dependencies {
            implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2'
            implementation 'org.jetbrains.kotlinx:kotlinx-serialization-runtime:0.13.0'
            implementation 'io.ktor:ktor-client-android:1.2.2'
        }

        iosMain.dependencies {
            implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core-native:1.3.2'
            implementation 'org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:0.13.0'
            implementation "io.ktor:ktor-client-core-native:1.2.2"
            implementation "io.ktor:ktor-client-ios:1.2.2"
        }

    }

    cocoapods {
        // Configure fields required by CocoaPods.
        summary = "Some description for a Kotlin/Native module"
        homepage = "Link to a Kotlin/Native module homepage"
    }
}