KT-51884 Skip XCFramework and FatFramework tasks on non-mac machines.

This commit is contained in:
konstantin.tskhovrebov
2022-04-08 14:51:41 +02:00
committed by Space
parent 8bc29a3011
commit c82b1d3e33
3 changed files with 27 additions and 2 deletions
@@ -14,13 +14,13 @@ import org.junit.BeforeClass
import org.junit.Test import org.junit.Test
import kotlin.test.assertTrue import kotlin.test.assertTrue
class CocoaPodsNonMacIT : BaseGradleIT() { class AppleFrameworkNonMacIT : BaseGradleIT() {
override val defaultGradleVersion: GradleVersionRequired override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.FOR_MPP_SUPPORT get() = GradleVersionRequired.FOR_MPP_SUPPORT
@Test @Test
fun testImport() { fun `check success podImport`() {
transformProjectWithPluginsDsl( transformProjectWithPluginsDsl(
"native-cocoapods-tests" "native-cocoapods-tests"
).build("podImport", "-Pkotlin.native.cocoapods.generate.wrapper=true") { ).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 { companion object {
@BeforeClass @BeforeClass
@JvmStatic @JvmStatic
@@ -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.plugin.mpp.NativeBuildType
import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.tasks.*
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.konan.target.KonanTarget
import java.io.File import java.io.File
@@ -138,6 +139,10 @@ private fun Project.registerAssembleFatForXCFrameworkTask(
} }
abstract class XCFrameworkTask : DefaultTask() { abstract class XCFrameworkTask : DefaultTask() {
init {
onlyIf { HostManager.hostIsMac }
}
/** /**
* A base name for the XCFramework. * A base name for the XCFramework.
*/ */
@@ -16,6 +16,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.NativeOutputKind
import org.jetbrains.kotlin.gradle.utils.appendLine import org.jetbrains.kotlin.gradle.utils.appendLine
import org.jetbrains.kotlin.konan.target.Architecture import org.jetbrains.kotlin.konan.target.Architecture
import org.jetbrains.kotlin.konan.target.Family 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.target.KonanTarget.* import org.jetbrains.kotlin.konan.target.KonanTarget.*
import org.jetbrains.kotlin.konan.util.visibleName 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. * Task running lipo to create a fat framework from several simple frameworks. It also merges headers, plists and module files.
*/ */
open class FatFrameworkTask : DefaultTask() { open class FatFrameworkTask : DefaultTask() {
init {
onlyIf { HostManager.hostIsMac }
}
private val archToFramework: MutableMap<Architecture, FrameworkDescriptor> = mutableMapOf() private val archToFramework: MutableMap<Architecture, FrameworkDescriptor> = mutableMapOf()
//region DSL properties. //region DSL properties.