diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt index 26992613fbb..2a23e56bf2a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt @@ -75,13 +75,7 @@ class KotlinMultiplatformPlugin : Plugin { // Ensure that the instance is created and configured during apply project.kotlinIdeMultiplatformImport project.locateOrRegisterIdeResolveDependenciesTask() - // FIXME: This code creates consumable configurations for Commonized CInterops - // FIXME: Unfortunately, it also creates [commonizeCInteropTask] eagerly - // FIXME: Decouple [allInteropGroups] from task internals and then create configuration without task materialization. - project.launch { - val task = project.commonizeCInteropTask()?.get() ?: return@launch - project.createCommonizedCInteropApiElementsKlibArtifact(task) - } + project.launch { project.createCommonizedCInteropApiElementsKlibArtifact() } project.addBuildListenerForXcode() project.whenEvaluated { kotlinMultiplatformExtension.createFatFrameworks() } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropConfigurations.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropConfigurations.kt index 2c71ecbbe4e..f477e46fe12 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropConfigurations.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropConfigurations.kt @@ -41,9 +41,9 @@ internal fun createCInteropApiElementsKlibArtifact( } } -internal suspend fun Project.createCommonizedCInteropApiElementsKlibArtifact( - interopTask: CInteropCommonizerTask -) { +internal suspend fun Project.createCommonizedCInteropApiElementsKlibArtifact() { + // TODO: Find a way to not materialize task. i.e. initialize only outputDirectory and allInteropGroups + val interopTask = project.commonizeCInteropTask()?.get() ?: return for (commonizerGroup in interopTask.allInteropGroups.await()) { for (sharedCommonizerTargets in commonizerGroup.targets) { val configuration = locateOrCreateCommonizedCInteropApiElementsConfiguration(sharedCommonizerTargets)