[Gradle, K/N] Don't add unsupported targets to default fat frameworks task
This commit is contained in:
+15
-9
@@ -194,18 +194,13 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget>(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
configurations.create(lowerCamelCaseName(binary.name, binary.target.name)) {
|
fun configureFatFramework() {
|
||||||
it.isCanBeConsumed = true
|
|
||||||
it.isCanBeResolved = false
|
|
||||||
it.configureConfiguration(linkTask)
|
|
||||||
}
|
|
||||||
|
|
||||||
val fatFrameworkConfigurationName = lowerCamelCaseName(binary.name, binary.target.konanTarget.family.name.toLowerCase(), "fat")
|
val fatFrameworkConfigurationName = lowerCamelCaseName(binary.name, binary.target.konanTarget.family.name.toLowerCase(), "fat")
|
||||||
val fatFrameworkTaskName = "link${fatFrameworkConfigurationName.capitalize()}"
|
val fatFrameworkTaskName = "link${fatFrameworkConfigurationName.capitalize()}"
|
||||||
|
|
||||||
val fatFrameworkTask = try {
|
val fatFrameworkTask = if (fatFrameworkTaskName in tasks.names) {
|
||||||
tasks.named(fatFrameworkTaskName, FatFrameworkTask::class.java)
|
tasks.named(fatFrameworkTaskName, FatFrameworkTask::class.java)
|
||||||
} catch (e: UnknownDomainObjectException) {
|
} else {
|
||||||
tasks.register(fatFrameworkTaskName, FatFrameworkTask::class.java) {
|
tasks.register(fatFrameworkTaskName, FatFrameworkTask::class.java) {
|
||||||
it.baseName = binary.baseName
|
it.baseName = binary.baseName
|
||||||
it.destinationDir = it.destinationDir.resolve(binary.buildType.name.toLowerCase())
|
it.destinationDir = it.destinationDir.resolve(binary.buildType.name.toLowerCase())
|
||||||
@@ -216,7 +211,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget>(
|
|||||||
try {
|
try {
|
||||||
it.from(binary)
|
it.from(binary)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
logger.warn("Cannot add binary ${binary.name} dependency to fat framework", e)
|
logger.warn("Cannot add binary ${binary.name} dependency to default fat framework", e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -234,6 +229,17 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget>(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
configurations.create(lowerCamelCaseName(binary.name, binary.target.name)) {
|
||||||
|
it.isCanBeConsumed = true
|
||||||
|
it.isCanBeResolved = false
|
||||||
|
it.configureConfiguration(linkTask)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (FatFrameworkTask.isSupportedTarget(binary.target)) {
|
||||||
|
configureFatFramework()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun Project.createRunTask(binary: Executable) {
|
private fun Project.createRunTask(binary: Executable) {
|
||||||
val taskName = binary.runTaskName ?: return
|
val taskName = binary.runTaskName ?: return
|
||||||
registerTask<Exec>(taskName) { exec ->
|
registerTask<Exec>(taskName) { exec ->
|
||||||
|
|||||||
+13
@@ -11,6 +11,7 @@ import org.gradle.api.file.FileTree
|
|||||||
import org.gradle.api.tasks.*
|
import org.gradle.api.tasks.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.cocoapods.asValidFrameworkName
|
import org.jetbrains.kotlin.gradle.plugin.cocoapods.asValidFrameworkName
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.Framework
|
import org.jetbrains.kotlin.gradle.plugin.mpp.Framework
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
|
||||||
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.KonanTarget.*
|
import org.jetbrains.kotlin.konan.target.KonanTarget.*
|
||||||
@@ -335,4 +336,16 @@ open class FatFrameworkTask: DefaultTask() {
|
|||||||
mergePlists(fatFramework.infoPlist, frameworkName)
|
mergePlists(fatFramework.infoPlist, frameworkName)
|
||||||
mergeDSYM()
|
mergeDSYM()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private val supportedTargets = listOf(
|
||||||
|
IOS_ARM32, IOS_ARM64, IOS_X64,
|
||||||
|
WATCHOS_ARM32, WATCHOS_ARM64, WATCHOS_X86, WATCHOS_X64,
|
||||||
|
TVOS_ARM64, TVOS_X64
|
||||||
|
)
|
||||||
|
|
||||||
|
fun isSupportedTarget(target: KotlinNativeTarget): Boolean {
|
||||||
|
return target.konanTarget in supportedTargets
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user