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 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
@@ -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.
*/
@@ -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<Architecture, FrameworkDescriptor> = mutableMapOf()
//region DSL properties.