[K/N] Fix build-tools project compilation
Add necessary subprojects and dependencies
Add OptIn annotation for experimental stdlib methods in 1.5
Fix compilation errors and cleanup
diff --git a/kotlin-native/build-tools/build.gradle.kts b/kotlin-native/build-tools/build.gradle.kts
index 4990093..f254986 100644
--- a/kotlin-native/build-tools/build.gradle.kts
+++ b/kotlin-native/build-tools/build.gradle.kts
@@ -52,22 +52,25 @@
repositories {
maven("https://cache-redirector.jetbrains.com/maven-central")
mavenCentral()
+ gradlePluginPortal()
}
dependencies {
- compileOnly(gradleApi())
+ api(gradleApi())
- implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
- implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
- implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
+ api(kotlinStdlib())
+ implementation(project(":kotlin-gradle-plugin"))
+ implementation(project(":kotlin-reflect"))
+ implementation("org.jetbrains.kotlin:kotlin-build-gradle-plugin:${kotlinBuildProperties.buildGradlePluginVersion}")
+
implementation("com.ullink.slack:simpleslackapi:$slackApiVersion") {
exclude(group = "com.google.code.gson", module = "gson") // Workaround for Gradle dependency resolution error
}
- val versionPropertiesFile = project.rootProject.projectDir.resolve("gradle/versions.properties")
val versionProperties = Properties()
- versionPropertiesFile.inputStream().use { propInput ->
+ project.rootProject.projectDir.resolve("gradle/versions.properties").inputStream().use { propInput ->
versionProperties.load(propInput)
}
+ implementation(commonDependency("com.google.code.gson:gson"))
configurations.all {
resolutionStrategy.eachDependency {
if (requested.group == "com.google.code.gson" && requested.name == "gson") {
@@ -82,12 +85,10 @@
implementation("io.ktor:ktor-client-cio:$ktorVersion")
api(project(":native:kotlin-native-utils"))
-
- // Located in <repo root>/shared and always provided by the composite build.
-// api("org.jetbrains.kotlin:kotlin-native-shared:$kotlinVersion")
-// implementation("gradle.plugin.com.github.johnrengelman:shadow:$shadowVersion")
-//
-// implementation("org.jetbrains.kotlinx:kotlinx-metadata-klib:$metadataVersion")
+ api(project(":kotlin-native:shared"))
+ api(project(":kotlinx-metadata-klib"))
+ api(project(":kotlin-util-klib"))
+ implementation("gradle.plugin.com.github.johnrengelman:shadow:${rootProject.extra["versions.shadow"]}")
}
sourceSets["main"].withConvention(KotlinSourceSet::class) {
@@ -98,8 +99,12 @@
val compileGroovy: GroovyCompile by tasks
compileKotlin.apply {
- kotlinOptions.jvmTarget = "1.8"
- kotlinOptions.freeCompilerArgs += "-Xskip-prerelease-check"
+ kotlinOptions {
+ languageVersion = "1.4"
+ apiVersion = "1.4"
+ jvmTarget = "1.8"
+ freeCompilerArgs += "-Xskip-prerelease-check"
+ }
}
// Add Kotlin classes to a classpath for the Groovy compiler
diff --git a/kotlin-native/build-tools/settings.gradle.kts b/kotlin-native/build-tools/settings.gradle.kts
index 0f14aff9..865f1d2 100644
--- a/kotlin-native/build-tools/settings.gradle.kts
+++ b/kotlin-native/build-tools/settings.gradle.kts
@@ -15,8 +15,4 @@
}
}
}
-}
-
-rootProject.name = "kotlin-native-build-tools"
-
-includeBuild("../shared")
+}
\ No newline at end of file
diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/EndorsedLibraryInfo.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/EndorsedLibraryInfo.kt
index 02e722e..1c21ce4 100644
--- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/EndorsedLibraryInfo.kt
+++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/EndorsedLibraryInfo.kt
@@ -1,7 +1,7 @@
package org.jetbrains.kotlin
import org.gradle.api.Project
-
+@OptIn(ExperimentalStdlibApi::class)
data class EndorsedLibraryInfo(val project: Project, val name: String) {
val projectName: String
diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/FileCheckTest.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/FileCheckTest.kt
index 9149c32..8dfc934 100644
--- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/FileCheckTest.kt
+++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/FileCheckTest.kt
@@ -10,8 +10,6 @@
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.tasks.*
-import org.jetbrains.kotlin.gradle.plugin.tasks.KonanCompileProgramTask
-import org.jetbrains.kotlin.gradle.plugin.tasks.KonanCompileTask
import org.jetbrains.kotlin.konan.target.*
import java.io.File
import java.nio.file.Path
diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/FrameworkTest.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/FrameworkTest.kt
index 62fb0f7..9a436b4 100644
--- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/FrameworkTest.kt
+++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/FrameworkTest.kt
@@ -28,6 +28,7 @@
* @property swiftSources Swift-language test sources that use a given framework
* @property frameworks names of frameworks
*/
+@OptIn(ExperimentalStdlibApi::class)
open class FrameworkTest : DefaultTask(), KonanTestExecutable {
@Input
lateinit var swiftSources: List<String>
diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt
index 8c524c7..be7ccff 100644
--- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt
+++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt
@@ -2,6 +2,7 @@
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the LICENSE file.
*/
+@file:OptIn(ExperimentalStdlibApi::class)
package org.jetbrains.kotlin
diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/BenchmarkingPlugin.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/BenchmarkingPlugin.kt
index 5f84ca7..8743846 100644
--- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/BenchmarkingPlugin.kt
+++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/BenchmarkingPlugin.kt
@@ -209,6 +209,7 @@
protected open fun Project.collectCodeSize(applicationName: String) =
getCodeSizeBenchmark(applicationName, nativeExecutable)
+ @OptIn(ExperimentalStdlibApi::class)
protected open fun Project.configureKonanJsonTask(nativeTarget: KotlinNativeTarget): Task {
return tasks.create("konanJsonReport") {
group = BENCHMARKING_GROUP
diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/bitcode/CompileToBitcode.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/bitcode/CompileToBitcode.kt
index b79636d..ac9cd51 100644
--- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/bitcode/CompileToBitcode.kt
+++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/bitcode/CompileToBitcode.kt
@@ -13,7 +13,6 @@
import java.io.File
import javax.inject.Inject
import kotlinBuildProperties
-import isNativeRuntimeDebugInfoEnabled
import org.gradle.api.Project
import org.gradle.api.model.ObjectFactory
import org.gradle.process.ExecOperations
@@ -133,7 +132,7 @@
val compilerFlags: List<String>
get() {
val commonFlags = listOfNotNull(
- "-gdwarf-2".takeIf { project.kotlinBuildProperties.isNativeRuntimeDebugInfoEnabled },
+ "-gdwarf-2".takeIf { project.kotlinBuildProperties.getBoolean("kotlin.native.isNativeRuntimeDebugInfoEnabled", false) },
"-c", "-emit-llvm") + headersDirs.map { "-I$it" }
val sanitizerFlags = when (sanitizer) {
null -> listOf()
diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/bitcode/CompileToBitcodePlugin.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/bitcode/CompileToBitcodePlugin.kt
index 9eeafe2..1427bcd 100644
--- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/bitcode/CompileToBitcodePlugin.kt
+++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/bitcode/CompileToBitcodePlugin.kt
@@ -201,6 +201,7 @@
private const val COMPILATION_DATABASE_TASK_NAME = "CompilationDatabase"
+ @OptIn(ExperimentalStdlibApi::class)
private val String.capitalized: String
get() = replaceFirstChar { it.uppercase() }
diff --git a/kotlin-native/shared/build.gradle.kts b/kotlin-native/shared/build.gradle.kts
index de15561..bf11d59 100644
--- a/kotlin-native/shared/build.gradle.kts
+++ b/kotlin-native/shared/build.gradle.kts
@@ -15,7 +15,6 @@
*/
@file:Suppress("UnstableApiUsage")
-import org.jetbrains.kotlin.VersionGenerator
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
@@ -26,46 +25,31 @@
val rootBuildDirectory by extra(file(".."))
apply(from="../gradle/loadRootProperties.gradle")
-val konanVersion: String by extra
+val kotlinVersion = project.bootstrapKotlinVersion
group = "org.jetbrains.kotlin"
-version = konanVersion
repositories {
maven("https://cache-redirector.jetbrains.com/maven-central")
mavenCentral()
}
-// FIXME(ddol): KLIB-REFACTORING-CLEANUP: drop generation of KonanVersion!
-val generateCompilerVersion by tasks.registering(VersionGenerator::class) {}
-
sourceSets["main"].withConvention(KotlinSourceSet::class) {
kotlin.srcDir("src/main/kotlin")
kotlin.srcDir("src/library/kotlin")
- kotlin.srcDir(generateCompilerVersion.get().versionSourceDirectory)
}
tasks.withType<KotlinCompile> {
- dependsOn(generateCompilerVersion)
kotlinOptions.jvmTarget = "1.8"
kotlinOptions.freeCompilerArgs = listOf("-Xskip-prerelease-check")
}
-tasks.clean {
- doFirst {
- val versionSourceDirectory = generateCompilerVersion.get().versionSourceDirectory
- if (versionSourceDirectory.exists()) {
- versionSourceDirectory.delete()
- }
- }
-}
-
tasks.jar {
archiveFileName.set("shared.jar")
}
dependencies {
- kotlinCompilerClasspath("org.jetbrains.kotlin:kotlin-compiler-embeddable:${project.bootstrapKotlinVersion}")
+ kotlinCompilerClasspath("org.jetbrains.kotlin:kotlin-compiler-embeddable:$kotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion")
implementation("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
diff --git a/settings.gradle b/settings.gradle
index 0844348..6c828c0 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -806,4 +806,5 @@
include ":kotlin-native-compiler-embeddable"
project(":kotlin-native-compiler-embeddable").projectDir = "$rootDir/kotlin-native/prepare/kotlin-native-embeddable-compiler" as File
include ':kotlin-native:build-tools'
+ include ':kotlin-native:shared'
}