import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    apply from: 'gradle/versions.gradle'

    ext.bootstrap = [
            kotlinModule : "${project.rootDir}/gradle_scripts/kotlin-module-bootstrap.gradle",
            androidModule : "${project.rootDir}/gradle_scripts/android-module-bootstrap.gradle"
    ]

    repositories {
        google()
        mavenCentral()
        gradlePluginPortal()
        maven { url "https://plugins.gradle.org/m2/" }
    }
    dependencies {
        classpath libs.gradle
        classpath libs.kotlin
        classpath libs.ktlintGradle
        classpath libs.detekt
        classpath libs.navigationSafeArgs
    }
}

allprojects {
    // Buildscript here is required by detekt
    buildscript {
        repositories {
            mavenCentral()
            gradlePluginPortal()
            google()
        }
    }

    repositories {
        mavenCentral()
        gradlePluginPortal()
        google()
    }

    // Set Kotlin JVM target to the same for all subprojects
    tasks.withType(KotlinCompile).configureEach {
        kotlinOptions {
            jvmTarget = "17"
        }
    }

    tasks.withType(JavaCompile).tap {
        configureEach {
            options.compilerArgs.add("-Xlint:deprecation")
        }
    }
}

wrapper {
    gradleVersion(libs.versions.gradle.get())
    distributionType("all")
}