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.26") } 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") } kotlin { explicitApi() } description = "Kotlin KLIB Library Commonizer API" publish() dependencies { implementation(kotlinStdlib()) implementation(project(":native:kotlin-native-utils")) testImplementation(project(":kotlin-test::kotlin-test-junit")) testImplementation(commonDep("junit:junit")) testImplementation(projectTests(":compiler:tests-common")) testRuntimeOnly(project(":native:kotlin-klib-commonizer")) } sourceSets { "main" { projectDefault() } "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 { if (NativeCompilerDownloader(project, konanVersion).compilerDirectory.exists()) return@doFirst NativeCompilerDownloader(project, konanVersion).downloadIfNeeded() } } projectTest(parallel = false) { dependsOn(":dist") dependsOn("downloadNativeCompiler") workingDir = projectDir environment("KONAN_HOME", NativeCompilerDownloader(project, konanVersion).compilerDirectory.absolutePath) } runtimeJar() sourcesJar() javadocJar()