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"
            ]
        }
    }
}
