diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CocoaPodsNonMacIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/AppleFrameworkNonMacIT.kt similarity index 58% rename from libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CocoaPodsNonMacIT.kt rename to libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/AppleFrameworkNonMacIT.kt index 02e59828f69..1232a3ad72c 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CocoaPodsNonMacIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/AppleFrameworkNonMacIT.kt @@ -14,13 +14,13 @@ import org.junit.BeforeClass import org.junit.Test import kotlin.test.assertTrue -class CocoaPodsNonMacIT : BaseGradleIT() { +class AppleFrameworkNonMacIT : BaseGradleIT() { override val defaultGradleVersion: GradleVersionRequired get() = GradleVersionRequired.FOR_MPP_SUPPORT @Test - fun testImport() { + fun `check success podImport`() { transformProjectWithPluginsDsl( "native-cocoapods-tests" ).build("podImport", "-Pkotlin.native.cocoapods.generate.wrapper=true") { @@ -29,6 +29,21 @@ class CocoaPodsNonMacIT : BaseGradleIT() { } } + @Test + fun `check XCFramework and FatFramework tasks are SKIPPED`() { + transformProjectWithPluginsDsl("appleXCFramework") + .build("assembleSharedDebugXCFramework") { + assertSuccessful() + assertTasksSkipped(":shared:linkDebugFrameworkIosArm64") + assertTasksSkipped(":shared:linkDebugFrameworkIosX64") + assertTasksSkipped(":shared:linkDebugFrameworkWatchosArm32") + assertTasksSkipped(":shared:linkDebugFrameworkWatchosArm64") + assertTasksSkipped(":shared:linkDebugFrameworkWatchosX64") + assertTasksSkipped(":shared:assembleDebugWatchosFatFrameworkForSharedXCFramework") + assertTasksSkipped(":shared:assembleSharedDebugXCFramework") + } + } + companion object { @BeforeClass @JvmStatic diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/XCFrameworkTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/XCFrameworkTask.kt index 0989b19b032..e78ab4ccae6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/XCFrameworkTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/XCFrameworkTask.kt @@ -15,6 +15,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.Framework import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName +import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.KonanTarget import java.io.File @@ -138,6 +139,10 @@ private fun Project.registerAssembleFatForXCFrameworkTask( } abstract class XCFrameworkTask : DefaultTask() { + init { + onlyIf { HostManager.hostIsMac } + } + /** * A base name for the XCFramework. */ diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/FatFrameworkTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/FatFrameworkTask.kt index a91e3de0cfa..736f9800074 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/FatFrameworkTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/FatFrameworkTask.kt @@ -16,6 +16,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.NativeOutputKind import org.jetbrains.kotlin.gradle.utils.appendLine import org.jetbrains.kotlin.konan.target.Architecture import org.jetbrains.kotlin.konan.target.Family +import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.konan.target.KonanTarget.* import org.jetbrains.kotlin.konan.util.visibleName @@ -89,6 +90,10 @@ class FrameworkDescriptor( * Task running lipo to create a fat framework from several simple frameworks. It also merges headers, plists and module files. */ open class FatFrameworkTask : DefaultTask() { + init { + onlyIf { HostManager.hostIsMac } + } + private val archToFramework: MutableMap = mutableMapOf() //region DSL properties.