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)
|
||||
|
||||
val deviceIdProvider = testTask.project.provider {
|
||||
Xcode.getDefaultTestDeviceId(target.konanTarget)
|
||||
?: error("Xcode does not support simulator tests for ${target.konanTarget.name}. Check that requested SDK is installed.")
|
||||
if (Xcode != null) {
|
||||
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)
|
||||
}
|
||||
|
||||
+4
-1
@@ -280,7 +280,10 @@ class Framework(
|
||||
* Embed bitcode for the framework or not. See [BitcodeEmbeddingMode].
|
||||
*/
|
||||
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.")
|
||||
|
||||
+1
-1
@@ -125,7 +125,7 @@ internal fun KotlinNativeArtifact.registerLinkFrameworkTask(
|
||||
task.staticFramework.set(isStatic)
|
||||
if (embedBitcode != null) {
|
||||
task.embedBitcode.set(embedBitcode)
|
||||
} else {
|
||||
} else if (Xcode != null) {
|
||||
task.embedBitcode.set(project.provider { Xcode.defaultBitcodeEmbeddingMode(target, buildType) })
|
||||
}
|
||||
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.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.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 out = runCommand(listOf("/usr/bin/xcrun", "xcodebuild", "-version"))
|
||||
out.lines()[0].removePrefix("Xcode ")
|
||||
|
||||
Reference in New Issue
Block a user