From 6219806ab9cecf2728463ee3a164926a7040a7c7 Mon Sep 17 00:00:00 2001 From: Dmitrii Krasnov Date: Mon, 5 Feb 2024 14:42:44 +0100 Subject: [PATCH] [Gradle Native] Made eager outputFile in CInteropProcess deprecated ^KT-63206 Fixed --- .../mpp/compilationImpl/CreateCInteropTasksSideEffect.kt | 2 +- .../targets/native/cocoapods/KotlinCocoapodsPlugin.kt | 2 +- .../targets/native/internal/CInteropConfigurations.kt | 2 +- .../native/internal/CInteropPropagatedDependencies.kt | 2 +- .../gradle/targets/native/tasks/KotlinNativeTasks.kt | 8 ++++++-- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/CreateCInteropTasksSideEffect.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/CreateCInteropTasksSideEffect.kt index a0aea300aa6..9de3f608f81 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/CreateCInteropTasksSideEffect.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/compilationImpl/CreateCInteropTasksSideEffect.kt @@ -66,7 +66,7 @@ internal val KotlinCreateNativeCInteropTasksSideEffect = KotlinCompilationSideEf // Add the interop library in publication. createKlibArtifact( compilation, - artifactFile = interopTask.map { it.outputFile }, + artifactFile = interopTask.flatMap { it.outputFileProvider }, classifier = "cinterop-${interop.name}", producingTask = interopTask, ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/KotlinCocoapodsPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/KotlinCocoapodsPlugin.kt index 647a0b76206..f6a26d9fc41 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/KotlinCocoapodsPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/KotlinCocoapodsPlugin.kt @@ -390,7 +390,7 @@ open class KotlinCocoapodsPlugin : Plugin { val dependencyTaskName = cinterops.getByName(dependencyPod.moduleName).interopProcessingTaskName val dependencyTask = project.tasks.named(dependencyTaskName) - interop.dependencyFiles += project.files(dependencyTask.map { it.outputFile }).builtBy(dependencyTask) + interop.dependencyFiles += project.files(dependencyTask.flatMap { it.outputFileProvider }).builtBy(dependencyTask) dependencyPod.interopBindingDependencies.forEach { transitiveDependency -> addPodDependencyToInterop(project, cocoapodsExtension, pod, cinterops, interop, transitiveDependency) 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 4ccb490b7b1..6e82ad9feed 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 @@ -33,7 +33,7 @@ internal fun createCInteropApiElementsKlibArtifact( val project = target.project val configurationName = cInteropApiElementsConfigurationName(target) val configuration = project.configurations.getByName(configurationName) - project.artifacts.add(configuration.name, interopTask.map { it.outputFile }) { artifact -> + project.artifacts.add(configuration.name, interopTask.flatMap { it.outputFileProvider }) { artifact -> artifact.extension = "klib" artifact.type = "klib" artifact.classifier = "cinterop-${settings.name}" diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropPropagatedDependencies.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropPropagatedDependencies.kt index 0a0b7b652b2..41f3c016184 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropPropagatedDependencies.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/CInteropPropagatedDependencies.kt @@ -93,6 +93,6 @@ private fun Project.getAllCInteropOutputFiles(compilation: KotlinNativeCompilati val cinteropTasks = compilation.cinterops.map { interop -> interop.interopProcessingTaskName } .mapNotNull { taskName -> tasks.findByName(taskName) as? CInteropProcess } - return project.filesProvider { cinteropTasks.map { it.outputFile } } + return project.filesProvider { cinteropTasks.map { it.outputFileProvider } } .builtBy(*cinteropTasks.toTypedArray()) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt index efd9d422e13..4e7723158e8 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt @@ -1093,6 +1093,10 @@ abstract class CInteropProcess @Inject internal constructor(params: Params) : @get:Input val moduleName: String = project.klibModuleName(baseKlibName) + @Deprecated( + "Eager outputFile was replaced with lazy outputFileProvider", + replaceWith = ReplaceWith("outputFileProvider") + ) @get:Internal val outputFile: File get() = outputFileProvider.get() @@ -1201,7 +1205,7 @@ abstract class CInteropProcess @Inject internal constructor(params: Params) : val args = mutableListOf().apply { - addArg("-o", outputFile.absolutePath) + addArg("-o", outputFileProvider.get().absolutePath) addArgIfNotNull("-target", konanTarget.visibleName) if (definitionFile.isPresent) { @@ -1235,7 +1239,7 @@ abstract class CInteropProcess @Inject internal constructor(params: Params) : } addBuildMetricsForTaskAction(buildMetrics, languageVersion = null) { - outputFile.parentFile.mkdirs() + outputFileProvider.get().parentFile.mkdirs() KotlinNativeCInteropRunner.createExecutionContext( task = this, isInIdeaSync = isInIdeaSync,