// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    // Android SDK version
    ext.androidMinSdkVersion = 21
    ext.androidTargetSdkVersion = 30
    ext.androidCompileSdkVersion = 30

    // Kotlin
    ext.kotlinVersion = '1.4.0'
    ext.coroutinesVersion = '1.3.9'
    ext.ankoVersion = '0.10.4'

    // KTX
    ext.liveDataKtx = '2.2.0'

    // Android library
    ext.androidGradlePlugin = '4.0.0'
    ext.supportVersion = '1.2.0'
    ext.recyclerViewVersion = '1.1.0'
    ext.cardViewVersion = '1.0.0'
    ext.lifecycleVersion = "2.2.0"
    ext.roomVersion = "2.2.5"
    ext.constraintLayoutVersion = '2.0.1'

    // Networking
    ext.retrofitVersion = '2.7.1'
    ext.okHttpVersion = '4.3.1'
    ext.curlVersion = '0.6.0'

    // Coil
    ext.coilVersion = "0.11.0"

    // Hilt + Dagger2
    ext.hiltAndroidVersion = "2.28-alpha"
    ext.hiltViewModelVersion = "1.0.0-alpha02"

    // KTX
    ext.coreKtxVersion = "1.3.1"
    ext.fragmentKtxVersion = "1.2.5"

    // Testing
    ext.jUnitVersion = '4.12'
    ext.androidjUnitVersion = '1.1.2'
    ext.mockitoKotlinVersion = '2.2.0'
    ext.archTestingVersion = '2.1.0'
    ext.espressoVersion = '3.1.0'
    ext.testRunnerVersion = '1.0.1'

    // Debug
    ext.timberVersion = '4.7.1'

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:$androidGradlePlugin"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
        classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlinVersion"
        classpath "com.google.dagger:hilt-android-gradle-plugin:$hiltAndroidVersion"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        google()
        mavenCentral()
    }
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
        kotlinOptions {
            jvmTarget = "1.8"
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
