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

buildscript {
    apply from: "../buildSrc/build_dependencies.gradle"

    repositories {
        google()
        jcenter()
        maven {
            url("https://androidx.dev/dokka/builds/6656073/artifacts/repository")
            metadataSources {
                mavenPom()
                artifact()
            }
        }
    }

    dependencies {
        classpath build_libs.agp
        classpath build_libs.kotlin.gradle_plugin
        classpath "org.jetbrains.dokka:dokka-gradle-plugin:${build_versions.dokka}"
        classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:${build_versions.dokka}"
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        jcenter()
        maven {
            url("https://androidx.dev/metalava/builds/6604778/artifacts/repo/m2repository")
            metadataSources {
                mavenPom()
                artifact()
            }
        }
        maven {
            url("https://androidx.dev/dokka/builds/6656073/artifacts/repository")
            metadataSources {
                mavenPom()
                artifact()
            }
        }
    }
    tasks.withType(KotlinCompile).configureEach {
        kotlinOptions {
            jvmTarget = "1.8"
            freeCompilerArgs += [
                    "-Werror",
                    "-Xskip-runtime-version-check",
                    // Allow `@OptIn` and `@UseExperimental`
                    "-Xopt-in=kotlin.RequiresOptIn"
            ]
        }
    }
}
