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

buildscript {
    ext {
        kotlin_version = '1.3.72'
        android_ktx_version = '1.2.0'
        rxjava_version = '2.2.19'
        rxandroid_version = '2.1.1'
        rxkotlin_version = '2.4.0'
        room_version = '2.2.5'
        lifecycle_version = '2.2.0'
        dagger_version = '2.28'
        coroutinesVersion = '1.3.7'
        activityVersion = '1.2.0-alpha05'
        ormLiteVersion = "4.46"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.6.3'
        classpath 'com.google.gms:google-services:4.3.3'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.1.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]'
            }
        }
    }
    //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
    }
}