From e2f6cba3076dfabd5b740c2b0bd77bd997cb8e6b Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Mon, 22 Apr 2019 16:32:39 +0700 Subject: [PATCH] Add a method to obtain MPP preset name for KonanTarget --- .../jetbrains/kotlin/konan/target/KonanTarget.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/KonanTarget.kt b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/KonanTarget.kt index caead791985..0de8fc0b708 100644 --- a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/KonanTarget.kt +++ b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/target/KonanTarget.kt @@ -319,5 +319,20 @@ open class HostManager(protected val distribution: Distribution = Distribution() } } +/** + * Name of a preset used in the 'kotlin-multiplatform' Gradle plugin to represent this target. + */ +val KonanTarget.presetName: String + get() = when (this) { + ANDROID_ARM32 -> "androidNativeArm32" + ANDROID_ARM64 -> "androidNativeArm64" + else -> evaluatePresetName(this.name) + } + +private fun evaluatePresetName(targetName: String): String { + val nameParts = targetName.split('_').mapNotNull { it.takeIf(String::isNotEmpty) } + return nameParts.asSequence().drop(1).joinToString("", nameParts.firstOrNull().orEmpty(), transform = String::capitalize) +} + class TargetSupportException (message: String = "", cause: Throwable? = null) : Exception(message, cause)