blob: b450fd5e8fa34b6c5ed702a70c1e4a30c05b904f [file] [log] [blame]
import java.io.*
import java.util.*
/*
* Copyright 2017-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("../gradle/libs.versions.toml"))
overriddenKotlinVersion()?.also { overriddenVersion ->
logger.info("Overriding Kotlin version in buildSrc: $overriddenVersion")
version("kotlin", overriddenVersion)
}
}
}
}
fun overriddenKotlinVersion(): String? {
val kotlinRepoUrl: String? = providers.gradleProperty("kotlin_repo_url").orNull
val repoVersion: String? = providers.gradleProperty("kotlin_version").orNull
val repoVersionFile: String?
val bootstrap: String? = providers.gradleProperty("bootstrap").orNull
val bootstrapVersion: String? = providers.gradleProperty("kotlin.version.snapshot").orNull
val bootstrapVersionFile: String?
val buildSnapshotTrain: String? = providers.gradleProperty("build_snapshot_train").orNull
val trainVersion: String? = providers.gradleProperty("kotlin_snapshot_version").orNull
val trainVersionFile: String?
FileInputStream(file("../gradle.properties")).use { propFile ->
val properties = Properties()
properties.load(propFile)
repoVersionFile = properties["kotlin_version"] as String?
bootstrapVersionFile = properties["kotlin.version.snapshot"] as String?
trainVersionFile = properties["kotlin_snapshot_version"] as String?
}
if (kotlinRepoUrl?.isNotEmpty() == true) {
return repoVersion ?: repoVersionFile ?: throw IllegalArgumentException("\"kotlin_version\" Gradle property should be defined")
} else if (bootstrap != null) {
return bootstrapVersion ?: bootstrapVersionFile ?: throw IllegalArgumentException("\"kotlin.version.snapshot\" Gradle property should be defined")
}
if (buildSnapshotTrain?.isNotEmpty() == true) {
return trainVersion ?: trainVersionFile ?: throw IllegalArgumentException("\"kotlin_snapshot_version\" should be defined when building with snapshot compiler")
}
return null
}