[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' }