diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/metadata/K2MetadataKlibSerializer.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/metadata/K2MetadataKlibSerializer.kt index d185b7f87c8..1a7791c08b6 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/metadata/K2MetadataKlibSerializer.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/metadata/K2MetadataKlibSerializer.kt @@ -52,7 +52,7 @@ internal class K2MetadataKlibSerializer(private val metadataVersion: BuiltInsBin LockBasedStorageManager("K2MetadataKlibSerializer") ) - val analyzer = runCommonAnalysisForSerialization(environment, false, dependencyContainer) + val analyzer = runCommonAnalysisForSerialization(environment, true, dependencyContainer) if (analyzer == null || analyzer.hasErrors()) return diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt index 61eaf856984..c1185726b61 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt @@ -8,8 +8,9 @@ package org.jetbrains.kotlin.gradle import org.jetbrains.kotlin.gradle.util.modify import org.jetbrains.kotlin.konan.target.HostManager import org.junit.Assume -import kotlin.test.Ignore +import java.io.File import kotlin.test.Test +import kotlin.test.assertFalse /** FIXME (sergey.igushkin): please enable these tests back as soon as the Kotlin/Native version that is bundled with the * Kotlin distribution supports compilation to klib and targetless klibs. @@ -89,6 +90,23 @@ class KlibBasedMppIT : BaseGradleIT() { assertSuccessful() assertTasksExecuted(*tasksToExecute.toTypedArray()) + + assertFileExists("build/classes/kotlin/metadata/jvmAndJsMain/manifest") + assertFileExists("build/classes/kotlin/metadata/iosMain/iosMain.klib") + + // Check that the common and JVM+JS source sets don't receive the Kotlin/Native stdlib in the classpath: + run { + fun getClasspath(taskPath: String): Iterable { + val argsPrefix = " $taskPath Kotlin compiler args:" + return output.lines().single { argsPrefix in it } + .substringAfter("-classpath ").substringBefore(" -").split(File.pathSeparator) + } + + fun classpathHasKNStdlib(classpath: Iterable) = classpath.any { "klib/common/stdlib" in it.replace("\\", "/") } + + assertFalse(classpathHasKNStdlib(getClasspath(":compileKotlinMetadata"))) + assertFalse(classpathHasKNStdlib(getClasspath(":compileJvmAndJsMainKotlinMetadata"))) + } } } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt index 4ebf85b37cd..0395a092896 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt @@ -126,7 +126,7 @@ internal class GradleKotlinCompilerWork @Inject constructor( with(log) { kotlinDebug { "Kotlin compiler class: ${compilerClassName}" } kotlinDebug { "Kotlin compiler classpath: ${compilerFullClasspath.joinToString { it.canonicalPath }}" } - kotlinDebug { "Kotlin compiler args: ${compilerArgs.joinToString(" ")}" } + kotlinDebug { "$taskPath Kotlin compiler args: ${compilerArgs.joinToString(" ")}" } } val executionStrategy = kotlinCompilerExecutionStrategy() diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetPreset.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetPreset.kt index ef358813e13..b54d93ecb79 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetPreset.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetPreset.kt @@ -142,7 +142,7 @@ abstract class AbstractKotlinNativeTargetPreset( project.kotlinExtension.sourceSets .filter { it.isIntermediateNativeSourceSet() } .forEach { - it.dependencies { implementation(stdlib) } + project.dependencies.add(it.implementationMetadataConfigurationName, stdlib) } } }