From 842337434311056f41c26d6d23e5c783682ccd0e Mon Sep 17 00:00:00 2001 From: "konstantin.tskhovrebov" Date: Fri, 17 Dec 2021 10:47:15 +0100 Subject: [PATCH] Fix gradle task name clash for Xcode framework tasks. --- .../kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt | 6 ++++-- .../gradle/targets/native/tasks/artifact/KotlinArtifact.kt | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt index aa5cf11b1a2..c2ff0ed43aa 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt @@ -87,12 +87,14 @@ private fun Project.registerAssembleAppleFrameworkTask(framework: Framework): Ta val frameworkBuildType = framework.buildType val frameworkTarget = framework.target + val isRequestedFramework = envTargets.contains(frameworkTarget.konanTarget) + val frameworkTaskName = lowerCamelCaseName( "assemble", framework.namePrefix, frameworkBuildType.getName(), "AppleFrameworkForXcode", - if (!needFatFramework) frameworkTarget.name else null + if (isRequestedFramework && needFatFramework) null else frameworkTarget.name //for fat framework we need common name ) val envBuildType = XcodeEnvironment.buildType @@ -112,7 +114,7 @@ private fun Project.registerAssembleAppleFrameworkTask(framework: Framework): Ta } return when { - !envTargets.contains(frameworkTarget.konanTarget) -> locateOrRegisterTask(frameworkTaskName) { task -> + !isRequestedFramework -> locateOrRegisterTask(frameworkTaskName) { task -> task.description = "Packs $frameworkBuildType ${frameworkTarget.name} framework for Xcode" task.isEnabled = false } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/artifact/KotlinArtifact.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/artifact/KotlinArtifact.kt index b68a6be6595..a9937280bcc 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/artifact/KotlinArtifact.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/artifact/KotlinArtifact.kt @@ -5,8 +5,10 @@ package org.jetbrains.kotlin.gradle.targets.native.tasks.artifact +import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.attributes.Usage +import org.gradle.kotlin.dsl.create import org.jetbrains.kotlin.gradle.dsl.KotlinCommonToolOptions import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget @@ -15,6 +17,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.konan.target.presetName +import javax.inject.Inject abstract class KotlinArtifact { internal val modules = mutableSetOf()