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

buildscript {
    ext {
        kotlin_version = '1.4.30'
        coreVersion = '1.3.2'
        rxjava_version = '2.2.20'
        rxandroid_version = '2.1.1'
        rxkotlin_version = '2.4.0'
        room_version = '2.2.6'
        lifecycle_version = '2.2.0'
        dagger_version = '2.31.2'
        coroutinesVersion = '1.3.7'
        activityVersion = '1.2.0-rc01'
        fragmentktx_version = '1.3.0-rc01'
        ormLiteVersion = '4.46'
        nav_version = '2.3.2'
        appcompat_verison = '1.2.0'
        material_version = '1.2.1'
        constraintlayout_version = '2.0.4'
        preferencektx_version = '1.1.1'
        commonslang3_version = '3.11'
        work_version = '2.5.0'

        junit_version = '4.13.1'
        mockitoVersion = '2.8.47'
        powermockVersion = "1.7.3"
        dexmakerVersion = "1.2"
        retrofit2Version = '2.9.0'
        okhttp3Version = '4.9.0'

        androidx_junit = '1.1.2'
        androidx_rules = '1.3.1-alpha03'
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.1'
        classpath 'com.google.gms:google-services:4.3.4'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.4.1'

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

        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()

        maven {
            url "https://maven.google.com"
        }
        ivy {
            url 'https://github.com/'
            patternLayout {
                artifact '/[organisation]/[module]/archive/[revision].[ext]'
            }
        }
        maven { url 'https://jitpack.io' }
    }
    //Support @JvmDefault
    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
        kotlinOptions {
            freeCompilerArgs = ['-Xjvm-default=enable'] //enable or compatibility
            jvmTarget = "1.8"
        }
    }
}

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

subprojects {
    tasks.withType(Test) {
        maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
    }
}