Make Xcode utils nullable for non Apple hosts.
This commit is contained in:
committed by
Space Team
parent
321e436132
commit
239a1a4bab
+6
-2
@@ -671,8 +671,12 @@ class KotlinNativeTargetWithSimulatorTestsConfigurator :
|
|||||||
super.configureTestTask(target, testTask)
|
super.configureTestTask(target, testTask)
|
||||||
|
|
||||||
val deviceIdProvider = testTask.project.provider {
|
val deviceIdProvider = testTask.project.provider {
|
||||||
Xcode.getDefaultTestDeviceId(target.konanTarget)
|
if (Xcode != null) {
|
||||||
?: error("Xcode does not support simulator tests for ${target.konanTarget.name}. Check that requested SDK is installed.")
|
Xcode.getDefaultTestDeviceId(target.konanTarget)
|
||||||
|
?: error("Xcode does not support simulator tests for ${target.konanTarget.name}. Check that requested SDK is installed.")
|
||||||
|
} else {
|
||||||
|
error("Xcode is not found.")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
testTask.device.set(deviceIdProvider)
|
testTask.device.set(deviceIdProvider)
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-1
@@ -280,7 +280,10 @@ class Framework(
|
|||||||
* Embed bitcode for the framework or not. See [BitcodeEmbeddingMode].
|
* Embed bitcode for the framework or not. See [BitcodeEmbeddingMode].
|
||||||
*/
|
*/
|
||||||
val embedBitcodeMode = project.objects.property(org.jetbrains.kotlin.gradle.plugin.mpp.BitcodeEmbeddingMode::class.java).apply {
|
val embedBitcodeMode = project.objects.property(org.jetbrains.kotlin.gradle.plugin.mpp.BitcodeEmbeddingMode::class.java).apply {
|
||||||
convention(project.provider { Xcode.defaultBitcodeEmbeddingMode(konanTarget, buildType) })
|
convention(project.provider {
|
||||||
|
Xcode?.defaultBitcodeEmbeddingMode(konanTarget, buildType)
|
||||||
|
?: org.jetbrains.kotlin.gradle.plugin.mpp.BitcodeEmbeddingMode.DISABLE
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated("Use 'embedBitcodeMode' property instead.")
|
@Deprecated("Use 'embedBitcodeMode' property instead.")
|
||||||
|
|||||||
+1
-1
@@ -125,7 +125,7 @@ internal fun KotlinNativeArtifact.registerLinkFrameworkTask(
|
|||||||
task.staticFramework.set(isStatic)
|
task.staticFramework.set(isStatic)
|
||||||
if (embedBitcode != null) {
|
if (embedBitcode != null) {
|
||||||
task.embedBitcode.set(embedBitcode)
|
task.embedBitcode.set(embedBitcode)
|
||||||
} else {
|
} else if (Xcode != null) {
|
||||||
task.embedBitcode.set(project.provider { Xcode.defaultBitcodeEmbeddingMode(target, buildType) })
|
task.embedBitcode.set(project.provider { Xcode.defaultBitcodeEmbeddingMode(target, buildType) })
|
||||||
}
|
}
|
||||||
task.libraries.setFrom(project.configurations.getByName(librariesConfigurationName))
|
task.libraries.setFrom(project.configurations.getByName(librariesConfigurationName))
|
||||||
|
|||||||
+13
-1
@@ -11,10 +11,22 @@ import org.jetbrains.kotlin.konan.target.Architecture.ARM32
|
|||||||
import org.jetbrains.kotlin.konan.target.Architecture.ARM64
|
import org.jetbrains.kotlin.konan.target.Architecture.ARM64
|
||||||
import org.jetbrains.kotlin.konan.target.Family
|
import org.jetbrains.kotlin.konan.target.Family
|
||||||
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.util.capitalizeDecapitalize.toUpperCaseAsciiOnly
|
import org.jetbrains.kotlin.util.capitalizeDecapitalize.toUpperCaseAsciiOnly
|
||||||
|
|
||||||
internal object Xcode {
|
|
||||||
|
internal val Xcode = XcodeUtils()
|
||||||
|
|
||||||
|
internal class XcodeUtils private constructor() {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private val current: XcodeUtils? =
|
||||||
|
if (HostManager.hostIsMac) XcodeUtils() else null
|
||||||
|
|
||||||
|
operator fun invoke() = current
|
||||||
|
}
|
||||||
|
|
||||||
val currentVersion: String by lazy {
|
val currentVersion: String by lazy {
|
||||||
val out = runCommand(listOf("/usr/bin/xcrun", "xcodebuild", "-version"))
|
val out = runCommand(listOf("/usr/bin/xcrun", "xcodebuild", "-version"))
|
||||||
out.lines()[0].removePrefix("Xcode ")
|
out.lines()[0].removePrefix("Xcode ")
|
||||||
|
|||||||
Reference in New Issue
Block a user