blob: 96d718e047d11f86518c7f92814018b2c0f048b7 [file] [log] [blame]
import java.util.*
plugins {
`kotlin-dsl`
}
val cacheRedirectorEnabled = System.getenv("CACHE_REDIRECTOR")?.toBoolean() == true
val buildSnapshotTrain = properties["build_snapshot_train"]?.toString()?.toBoolean() == true
val kotlinDevUrl = project.rootProject.properties["kotlin_repo_url"] as? String
repositories {
mavenCentral()
if (cacheRedirectorEnabled) {
maven("https://cache-redirector.jetbrains.com/plugins.gradle.org/m2")
} else {
maven("https://plugins.gradle.org/m2")
}
if (!kotlinDevUrl.isNullOrEmpty()) {
maven(kotlinDevUrl)
}
if (buildSnapshotTrain) {
mavenLocal()
}
}
val gradleProperties = Properties().apply {
file("../gradle.properties").inputStream().use { load(it) }
}
fun version(target: String): String {
// Intercept reading from properties file
if (target == "kotlin") {
val snapshotVersion = properties["kotlin_snapshot_version"]
if (snapshotVersion != null) return snapshotVersion.toString()
}
val version = "${target}_version"
// Read from CLI first, used in aggregate builds
return properties[version]?.let{"$it"} ?: gradleProperties.getProperty(version)
}
dependencies {
implementation(kotlin("gradle-plugin", version("kotlin")))
/*
* Dokka is compiled with language level = 1.4, but depends on Kotlin 1.6.0, while
* our version of Gradle bundles Kotlin 1.4.x and can read metadata only up to 1.5.x,
* thus we're excluding stdlib compiled with 1.6.0 from dependencies.
*/
implementation("org.jetbrains.dokka:dokka-gradle-plugin:${version("dokka")}") {
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk8")
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk7")
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib")
}
implementation("org.jetbrains.dokka:dokka-core:${version("dokka")}") {
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk8")
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk7")
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib")
}
implementation("ru.vyarus:gradle-animalsniffer-plugin:${version("animalsniffer")}") // Android API check
implementation("org.jetbrains.kotlinx:kover-gradle-plugin:${version("kover")}") {
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk8")
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk7")
exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib")
}
implementation("org.jetbrains.kotlinx:kotlinx-benchmark-plugin:0.4.9")
implementation("org.jetbrains.kotlinx:kotlinx-knit:${version("knit")}")
}