plugins {
  id 'com.android.library'
  id 'kotlin-android'
  id 'com.vanniktech.maven.publish'
}

android {
  compileSdk 31
  defaultConfig {
    minSdk 21
    targetSdk 30
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  }
  buildTypes {
    release {
      minifyEnabled false
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
  kotlinOptions {
    jvmTarget = JavaVersion.VERSION_1_8.toString()
    freeCompilerArgs += [
        "-Xallow-jvm-ir-dependencies",
        "-Xskip-prerelease-check",
        "-Xuse-experimental=kotlinx.coroutines.ExperimentalCoroutinesApi",
    ]
  }
  buildFeatures {
    compose true
  }
  composeOptions {
    kotlinCompilerExtensionVersion composeVersion
  }
}

dependencies {
  api project(':lottie')
  implementation "androidx.compose.foundation:foundation:$composeVersion"
  implementation "androidx.compose.ui:ui:$composeVersion"

  testImplementation "org.robolectric:robolectric:$robolectricVersion"
  testImplementation 'androidx.collection:collection-ktx:1.1.0'
  testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutinesVersion"
  testImplementation "junit:junit:$junitVersion"
  androidTestImplementation "androidx.test.ext:junit:$extJunitVersion"
  androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVersion"
}