From 5026778cd1d6d63361ebd704d26ee7d25bb30401 Mon Sep 17 00:00:00 2001 From: Timofey Solonin Date: Wed, 5 Jul 2023 12:24:14 +0200 Subject: [PATCH] [MPP] Inject CInteropCommonizerTask from outside instead of using a future ^KT-58712 --- .../gradle/targets/native/internal/CommonizerTasks.kt | 1 + .../CopyCInteropCommonizerTaskOutputForIdeTask.kt | 7 +++---- .../kotlin/gradle/unitTests/CommonizerTaskTests.kt | 11 +++++++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CommonizerTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CommonizerTasks.kt index 84d085b44d2..9317770c0af 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CommonizerTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CommonizerTasks.kt @@ -106,6 +106,7 @@ internal suspend fun Project.copyCommonizeCInteropForIdeTask(): TaskProvider - get() = project.future { project.commonizeCInteropTask() }.getOrThrow() ?: throw IllegalStateException("Missing commonizeCInteropTask") +) : AbstractCInteropCommonizerTask() { @get:IgnoreEmptyDirectories @get:InputFiles diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/CommonizerTaskTests.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/CommonizerTaskTests.kt index c2bb76986de..f49347f3d3d 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/CommonizerTaskTests.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/CommonizerTaskTests.kt @@ -11,6 +11,7 @@ import org.gradle.api.internal.project.ProjectInternal import org.gradle.testfixtures.ProjectBuilder import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeCompilation import org.jetbrains.kotlin.gradle.targets.native.internal.cInteropCommonizationEnabled +import org.jetbrains.kotlin.gradle.targets.native.internal.copyCommonizeCInteropForIdeTask import org.jetbrains.kotlin.gradle.util.* import kotlin.test.* @@ -167,4 +168,14 @@ class CommonizerTaskTests { assertFalse(subproject.cInteropCommonizationEnabled()) } } + + @Test + fun `test copyCommonizeCInteropForIdeTask creation - doesn't fail`() { + val project = ProjectBuilder.builder().build() + project.applyMultiplatformPlugin() + project.enableCInteropCommonization(true) + project.runLifecycleAwareTest { + project.copyCommonizeCInteropForIdeTask()?.get()?.cInteropCommonizerTaskOutputDirectories + } + } }