plugins {
    id 'com.android.library'
    id 'kotlin-android'
    id 'kotlin-kapt'
    id 'kotlin-allopen'
}

apply from: "${project.rootDir}/core/main/android_dependencies.gradle"
apply from: "${project.rootDir}/core/main/android_module_dependencies.gradle"
apply from: "${project.rootDir}/core/main/test_dependencies.gradle"
apply from: "${project.rootDir}/core/main/jacoco_global.gradle"

dependencies {
    implementation project(':core:libraries')
    implementation project(':core:interfaces')
    implementation project(':core:main')
    implementation project(':core:ui')
    implementation project(':core:utils')
    implementation(project(":pump:combov2:comboctl"))

    api "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
    api "org.jetbrains.kotlinx:kotlinx-datetime:$kotlinx_datetime_version"

    // This is necessary to avoid errors like these which otherwise come up often at runtime:
    // "WARNING: Failed to transform class kotlinx/datetime/TimeZone$Companion
    // java.lang.NoClassDefFoundError: kotlinx/serialization/KSerializer"
    //
    // "Rejecting re-init on previously-failed class java.lang.Class<
    // kotlinx.datetime.serializers.LocalDateTimeIso8601Serializer>:
    // java.lang.NoClassDefFoundError: Failed resolution of: Lkotlinx/serialization/KSerializer"
    //
    // kotlinx-datetime higher than 0.2.0 depends on kotlinx-serialization, but that dependency
    // is declared as "compileOnly". The runtime dependency on kotlinx-serialization is missing,
    // causing this error. Solution is to add runtimeOnly here.
    //
    // Source: https://github.com/mockk/mockk/issues/685#issuecomment-907076353:
    // TODO: Revisit this when upgrading kotlinx-datetime
    runtimeOnly("org.jetbrains.kotlinx:kotlinx-serialization-core:$kotlinx_serialization_version")
}

android {
    namespace 'info.nightscout.pump.combov2'
    buildFeatures {
        dataBinding true
    }
}