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

android {
  compileSdkVersion 30
  buildToolsVersion "30.0.3"

  defaultConfig {
    minSdkVersion 21
    targetSdkVersion 30

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  }

  buildTypes {
    release {
      minifyEnabled false
    }
  }
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
  kotlinOptions {
    jvmTarget = '1.8'
    freeCompilerArgs += ["-Xallow-jvm-ir-dependencies", "-Xskip-prerelease-check"]
  }
  buildFeatures {
    compose true
  }
  composeOptions {
    kotlinCompilerExtensionVersion composeVersion
    kotlinCompilerVersion kotlinVersion
  }
}

mavenPublish {
  targets {
    uploadArchives {
      repositoryUsername = project.hasProperty('SONATYPE_USERNAME') ? SONATYPE_USERNAME : ""
      repositoryPassword = project.hasProperty('SONATYPE_PASSWORD') ? SONATYPE_PASSWORD : ""
    }
  }
}

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