diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt index a1272ee348a..f25369bf609 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/metadata/KotlinMetadataTargetConfigurator.kt @@ -18,6 +18,7 @@ import org.gradle.api.tasks.bundling.Zip import org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension +import org.jetbrains.kotlin.gradle.dsl.multiplatformExtensionOrNull import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.mpp.* import org.jetbrains.kotlin.gradle.plugin.sources.* @@ -403,7 +404,6 @@ class KotlinMetadataTargetConfigurator(kotlinPluginVersion: String) : // and their dependencies metadata transformed for compilation: return project.files( project.provider { - val metadataTarget = compilation.target val sourceSet = compilation.defaultSourceSet val transformationTaskHolders = sourceSet.getSourceSetHierarchy().mapNotNull { hierarchySourceSet -> @@ -424,8 +424,8 @@ class KotlinMetadataTargetConfigurator(kotlinPluginVersion: String) : transformationTaskHolders.flatMap { it.get().filesByResolution.toList() }.toMap() val dependsOnCompilationOutputs = sourceSet.getSourceSetHierarchy().mapNotNull { hierarchySourceSet -> - val dependencyCompilation = metadataTarget.compilations.getByName(hierarchySourceSet.name) - dependencyCompilation.output.classesDirs.takeIf { hierarchySourceSet != sourceSet } + val dependencyCompilation = project.getMetadataCompilationForSourceSet(hierarchySourceSet) + dependencyCompilation?.output?.classesDirs.takeIf { hierarchySourceSet != sourceSet } } val artifactView = fromFiles.incoming.artifactView { view -> @@ -540,4 +540,8 @@ internal fun Project.filesWithUnpackedArchives(from: FileCollection, extensions: if (it.exists()) project.zipTree(it) else null } else it } - }).builtBy(from) \ No newline at end of file + }).builtBy(from) + +internal fun Project.getMetadataCompilationForSourceSet(sourceSet: KotlinSourceSet): AbstractKotlinCompilation<*>? { + return multiplatformExtension.metadata().compilations.findByName(sourceSet.name) +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt index 3201d28cc1f..25c2ded2f28 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeCompilation.kt @@ -21,6 +21,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.plugin.KotlinTarget import org.jetbrains.kotlin.gradle.plugin.sources.getSourceSetHierarchy import org.jetbrains.kotlin.gradle.plugin.sources.getVisibleSourceSetsFromAssociateCompilations +import org.jetbrains.kotlin.gradle.targets.metadata.getMetadataCompilationForSourceSet import org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName @@ -117,6 +118,6 @@ class KotlinSharedNativeCompilation(override val target: KotlinMetadataTarget, v addAll(defaultSourceSet.getSourceSetHierarchy()) remove(defaultSourceSet) } - project.files(friendSourceSets.mapNotNull { target.compilations.findByName(it.name)?.output?.classesDirs }) + project.files(friendSourceSets.mapNotNull { project.getMetadataCompilationForSourceSet(it)?.output?.classesDirs }) }) } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt index 08cb41578c3..c37e313ca48 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTarget.kt @@ -17,8 +17,8 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinNativeBinaryContainer import org.jetbrains.kotlin.gradle.dsl.kotlinExtension import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension import org.jetbrains.kotlin.gradle.plugin.* +import org.jetbrains.kotlin.gradle.targets.metadata.* import org.jetbrains.kotlin.gradle.targets.metadata.filesWithUnpackedArchives -import org.jetbrains.kotlin.gradle.targets.metadata.getPublishedCommonSourceSets import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnabled import org.jetbrains.kotlin.gradle.targets.native.KotlinNativeBinaryTestRun import org.jetbrains.kotlin.gradle.targets.native.KotlinNativeHostTestRun @@ -71,7 +71,7 @@ open class KotlinNativeTarget @Inject constructor( metadataJar.onlyIf { this@KotlinNativeTarget.publishable } val metadataCompilations = hostSpecificSourceSets.mapNotNull { - project.multiplatformExtension.metadata().compilations.findByName(it.name) + project.getMetadataCompilationForSourceSet(it) } metadataCompilations.forEach {