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 {
|
val enabled: List<KonanTarget> by lazy {
|
||||||
when (host) {
|
enabledTargetsByHost[host]?.toList() ?: throw TargetSupportException("Unknown host platform: $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")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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)
|
fun isEnabled(target: KonanTarget) = enabled.contains(target)
|
||||||
|
|
||||||
companion object {
|
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
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user