Show warnings for disabled targets on current host
Issue #KT-26647 Fixed
This commit is contained in:
@@ -173,34 +173,34 @@ open class HostManager(subtargetProvider: SubTargetProvider = NoSubTargets()) {
|
||||
}
|
||||
|
||||
val enabled: List<KonanTarget> by lazy {
|
||||
when (host) {
|
||||
KonanTarget.LINUX_X64 -> listOf(
|
||||
KonanTarget.LINUX_X64,
|
||||
KonanTarget.LINUX_ARM32_HFP,
|
||||
KonanTarget.LINUX_MIPS32,
|
||||
KonanTarget.LINUX_MIPSEL32,
|
||||
KonanTarget.ANDROID_ARM32,
|
||||
KonanTarget.ANDROID_ARM64,
|
||||
KonanTarget.WASM32
|
||||
) + zephyrSubtargets
|
||||
KonanTarget.MINGW_X64 -> listOf(
|
||||
KonanTarget.MINGW_X64,
|
||||
KonanTarget.WASM32
|
||||
) + zephyrSubtargets
|
||||
KonanTarget.MACOS_X64 -> listOf(
|
||||
KonanTarget.MACOS_X64,
|
||||
KonanTarget.IOS_ARM32,
|
||||
KonanTarget.IOS_ARM64,
|
||||
KonanTarget.IOS_X64,
|
||||
KonanTarget.ANDROID_ARM32,
|
||||
KonanTarget.ANDROID_ARM64,
|
||||
KonanTarget.WASM32
|
||||
) + zephyrSubtargets
|
||||
else ->
|
||||
throw TargetSupportException("Unknown host platform: $host")
|
||||
}
|
||||
enabledTargetsByHost[host]?.toList() ?: throw TargetSupportException("Unknown host platform: $host")
|
||||
}
|
||||
|
||||
val enabledTargetsByHost = mapOf(
|
||||
KonanTarget.LINUX_X64 to setOf(
|
||||
KonanTarget.LINUX_X64,
|
||||
KonanTarget.LINUX_ARM32_HFP,
|
||||
KonanTarget.LINUX_MIPS32,
|
||||
KonanTarget.LINUX_MIPSEL32,
|
||||
KonanTarget.ANDROID_ARM32,
|
||||
KonanTarget.ANDROID_ARM64,
|
||||
KonanTarget.WASM32
|
||||
) + zephyrSubtargets,
|
||||
KonanTarget.MINGW_X64 to setOf(
|
||||
KonanTarget.MINGW_X64,
|
||||
KonanTarget.WASM32
|
||||
) + zephyrSubtargets,
|
||||
KonanTarget.MACOS_X64 to setOf(
|
||||
KonanTarget.MACOS_X64,
|
||||
KonanTarget.IOS_ARM32,
|
||||
KonanTarget.IOS_ARM64,
|
||||
KonanTarget.IOS_X64,
|
||||
KonanTarget.ANDROID_ARM32,
|
||||
KonanTarget.ANDROID_ARM64,
|
||||
KonanTarget.WASM32
|
||||
) + zephyrSubtargets
|
||||
)
|
||||
|
||||
fun isEnabled(target: KonanTarget) = enabled.contains(target)
|
||||
|
||||
companion object {
|
||||
|
||||
+14
@@ -324,6 +324,20 @@ class KotlinNativeTargetPreset(
|
||||
}
|
||||
}
|
||||
|
||||
if (!konanTarget.enabledOnCurrentHost) {
|
||||
with(HostManager()) {
|
||||
val supportedHosts = enabledTargetsByHost.filterValues { konanTarget in it }.keys
|
||||
val supportedHostsString =
|
||||
if (supportedHosts.size == 1)
|
||||
"a ${supportedHosts.single()} host" else
|
||||
"one of the host platforms: ${supportedHosts.joinToString(", ")}"
|
||||
project.logger.warn(
|
||||
"Target '$name' for platform ${konanTarget} is ignored during build on this ${HostManager.host} machine. " +
|
||||
"You can build it with $supportedHostsString."
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user