[commonizer-api] workaround for old k/n artifacts

This commit is contained in:
Vasily Levchenko
2021-02-25 10:11:20 +01:00
committed by Stanislav Erokhin
parent e123127a4a
commit b05e742238
+52 -2
View File
@@ -1,5 +1,18 @@
import org.jetbrains.kotlin.gradle.utils.NativeCompilerDownloader
buildscript {
val cacheRedirectorEnabled = findProperty("cacheRedirectorEnabled")?.toString()?.toBoolean() ?: false
dependencies {
classpath("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.25")
}
repositories {
if (cacheRedirectorEnabled)
maven("https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-dependencies")
else
maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-dependencies")
}
}
plugins {
kotlin("jvm")
id("jps-compatible")
@@ -26,17 +39,54 @@ sourceSets {
"test" { projectDefault() }
}
/**
* TODO: This version hack on migrating period K/N into repository Kotlin, in new build infrostructure zero maintance claus isn't dropped,
* so for old builds we need to keep this version to string representation till total switch on new infrostructure.
*/
val konanVersion = object: org.jetbrains.kotlin.konan.CompilerVersion by NativeCompilerDownloader.DEFAULT_KONAN_VERSION {
override fun toString(showMeta: Boolean, showBuild: Boolean) = buildString {
if (major > 1
|| minor > 5
|| maintenance > 20
)
return NativeCompilerDownloader.DEFAULT_KONAN_VERSION.toString(showMeta, showBuild)
append(major)
append('.')
append(minor)
if (maintenance != 0) {
append('.')
append(maintenance)
}
if (milestone != -1) {
append("-M")
append(milestone)
}
if (showMeta) {
append('-')
append(meta.metaString)
}
if (showBuild && build != -1) {
append('-')
append(build)
}
}
override fun toString() = toString(meta != org.jetbrains.kotlin.konan.MetaVersion.RELEASE,
meta != org.jetbrains.kotlin.konan.MetaVersion.RELEASE)
}
tasks.register("downloadNativeCompiler") {
doFirst {
NativeCompilerDownloader(project).downloadIfNeeded()
NativeCompilerDownloader(project, konanVersion).downloadIfNeeded()
}
}
projectTest(parallel = false) {
dependsOn(":dist")
dependsOn("downloadNativeCompiler")
workingDir = projectDir
environment("KONAN_HOME", NativeCompilerDownloader(project).compilerDirectory.absolutePath)
environment("KONAN_HOME", NativeCompilerDownloader(project, konanVersion).compilerDirectory.absolutePath)
}
runtimeJar()