diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt index a457ef42b74..6defa84d637 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/KotlinNativeTargetConfigurator.kt @@ -36,6 +36,7 @@ import org.jetbrains.kotlin.gradle.targets.metadata.isKotlinGranularMetadataEnab import org.jetbrains.kotlin.gradle.targets.native.* import org.jetbrains.kotlin.gradle.targets.native.internal.commonizeCInteropTask import org.jetbrains.kotlin.gradle.targets.native.internal.createCInteropApiElementsKlibArtifact +import org.jetbrains.kotlin.gradle.targets.native.internal.locateOrCreateCInteropApiElementsConfiguration import org.jetbrains.kotlin.gradle.targets.native.internal.locateOrCreateCInteropDependencyConfiguration import org.jetbrains.kotlin.gradle.targets.native.tasks.* import org.jetbrains.kotlin.gradle.tasks.* @@ -278,6 +279,7 @@ open class KotlinNativeTargetConfigurator : AbstractKotl } protected fun configureCInterops(target: KotlinNativeTarget): Unit = with(target.project) { + locateOrCreateCInteropApiElementsConfiguration(target) target.compilations.all { compilation -> createCInteropTasks(compilation, compilation.cinterops) compilation.cinterops.all { cinterop -> diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropConfigurations.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropConfigurations.kt index d4883d7beaa..dbd6f791fc2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropConfigurations.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropConfigurations.kt @@ -25,7 +25,8 @@ internal fun createCInteropApiElementsKlibArtifact( interopTask: TaskProvider ) { val project = settings.compilation.project - val configuration = project.locateOrCreateCInteropApiElementsConfiguration(settings.target ?: return) + val configurationName = cInteropApiElementsConfigurationName(settings.target ?: return) + val configuration = project.configurations.getByName(configurationName) project.artifacts.add(configuration.name, interopTask.map { it.outputFile }) { artifact -> artifact.extension = "klib" artifact.type = "klib" @@ -55,8 +56,8 @@ internal fun Project.locateOrCreateCInteropDependencyConfiguration( } } -private fun Project.locateOrCreateCInteropApiElementsConfiguration(target: KotlinTarget): Configuration { - val configurationName = target.name + "CInteropApiElements" +internal fun Project.locateOrCreateCInteropApiElementsConfiguration(target: KotlinTarget): Configuration { + val configurationName = cInteropApiElementsConfigurationName(target) configurations.findByName(configurationName)?.let { return it } return configurations.create(configurationName).apply { @@ -70,6 +71,9 @@ private fun Project.locateOrCreateCInteropApiElementsConfiguration(target: Kotli } } +private fun cInteropApiElementsConfigurationName(target: KotlinTarget): String { + return target.name + "CInteropApiElements" +} internal object CInteropKlibLibraryElements { const val CINTEROP_KLIB = "cinterop-klib"