Get rid of explicit value case manipulations.
This commit is contained in:
committed by
alexander-gorshenev
parent
d237afdea5
commit
ff49153e79
+1
-1
@@ -69,7 +69,7 @@ class KonanConfig(val project: Project, val configuration: CompilerConfiguration
|
|||||||
internal val produce get() = configuration.get(KonanConfigKeys.PRODUCE)!!
|
internal val produce get() = configuration.get(KonanConfigKeys.PRODUCE)!!
|
||||||
private val prefix = produce.prefix(target)
|
private val prefix = produce.prefix(target)
|
||||||
private val suffix = produce.suffix(target)
|
private val suffix = produce.suffix(target)
|
||||||
val outputName = configuration.get(KonanConfigKeys.OUTPUT)?.removeSuffixIfPresent(suffix) ?: produce.name.toLowerCase()
|
val outputName = configuration.get(KonanConfigKeys.OUTPUT)?.removeSuffixIfPresent(suffix) ?: produce.userName
|
||||||
val outputFile = outputName
|
val outputFile = outputName
|
||||||
.prefixBaseNameIfNot(prefix)
|
.prefixBaseNameIfNot(prefix)
|
||||||
.suffixIfNot(suffix)
|
.suffixIfNot(suffix)
|
||||||
|
|||||||
+4
-3
@@ -17,12 +17,13 @@
|
|||||||
package org.jetbrains.kotlin.backend.konan
|
package org.jetbrains.kotlin.backend.konan
|
||||||
|
|
||||||
import org.jetbrains.kotlin.backend.konan.util.*
|
import org.jetbrains.kotlin.backend.konan.util.*
|
||||||
|
import org.jetbrains.kotlin.konan.util.UserNamed
|
||||||
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||||
|
|
||||||
enum class KonanPhase(val description: String,
|
enum class KonanPhase(val description: String,
|
||||||
vararg prerequisite: KonanPhase,
|
vararg prerequisite: KonanPhase,
|
||||||
var enabled: Boolean = true, var verbose: Boolean = false) {
|
var enabled: Boolean = true,
|
||||||
|
var verbose: Boolean = false) : UserNamed {
|
||||||
/* */ FRONTEND("Frontend builds AST"),
|
/* */ FRONTEND("Frontend builds AST"),
|
||||||
/* */ PSI_TO_IR("Psi to IR conversion"),
|
/* */ PSI_TO_IR("Psi to IR conversion"),
|
||||||
/* */ SERIALIZER("Serialize descriptor tree and inline IR bodies"),
|
/* */ SERIALIZER("Serialize descriptor tree and inline IR bodies"),
|
||||||
@@ -73,7 +74,7 @@ enum class KonanPhase(val description: String,
|
|||||||
}
|
}
|
||||||
|
|
||||||
object KonanPhases {
|
object KonanPhases {
|
||||||
val phases = KonanPhase.values().associate { it.name.toLowerCase() to it }
|
val phases = KonanPhase.values().associate { it.userName to it }
|
||||||
|
|
||||||
fun known(name: String): String {
|
fun known(name: String): String {
|
||||||
if (phases[name] == null) {
|
if (phases[name] == null) {
|
||||||
|
|||||||
+1
-1
@@ -32,7 +32,7 @@ interface KonanLibraryLayout {
|
|||||||
val targetsDir
|
val targetsDir
|
||||||
get() = File(libDir, "targets")
|
get() = File(libDir, "targets")
|
||||||
val targetDir
|
val targetDir
|
||||||
get() = File(targetsDir, target!!.name.toLowerCase())
|
get() = File(targetsDir, target!!.userName)
|
||||||
val kotlinDir
|
val kotlinDir
|
||||||
get() = File(targetDir, "kotlin")
|
get() = File(targetDir, "kotlin")
|
||||||
val nativeDir
|
val nativeDir
|
||||||
|
|||||||
+2
-2
@@ -337,11 +337,11 @@ private ArrayList<DefFile> targetDefFiles(String target) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String targetToPlatform(String target) {
|
private String targetToPlatform(String target) {
|
||||||
new TargetManager(target).target.family.name().toLowerCase()
|
new TargetManager(target).target.family.userName
|
||||||
}
|
}
|
||||||
|
|
||||||
private String targetToOs(String target) {
|
private String targetToOs(String target) {
|
||||||
new TargetManager(target).target.detailedName.toLowerCase()
|
new TargetManager(target).target.detailedName
|
||||||
}
|
}
|
||||||
|
|
||||||
private String defFileToTaskName(String target, String name) {
|
private String defFileToTaskName(String target, String name) {
|
||||||
|
|||||||
@@ -16,28 +16,27 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.konan.target
|
package org.jetbrains.kotlin.konan.target
|
||||||
|
|
||||||
enum class Family(name:String, val exeSuffix:String, val dynamicPrefix: String, val dynamicSuffix: String) {
|
import org.jetbrains.kotlin.konan.util.UserNamed
|
||||||
OSX( "osx" , "kexe", "lib", "dylib"),
|
|
||||||
IOS( "ios" , "kexe", "lib", "dylib"),
|
enum class Family(val exeSuffix:String, val dynamicPrefix: String, val dynamicSuffix: String) : UserNamed {
|
||||||
LINUX( "linux" , "kexe", "lib", "so" ),
|
OSX ("kexe", "lib", "dylib"),
|
||||||
WINDOWS("windows", "exe" , "" , "dll" ),
|
IOS ("kexe", "lib", "dylib"),
|
||||||
ANDROID("android", "so" , "lib", "so" ),
|
LINUX ("kexe", "lib", "so" ),
|
||||||
WASM( "wasm" , "wasm", "" , "wasm" )
|
WINDOWS ("exe" , "" , "dll" ),
|
||||||
|
ANDROID ("so" , "lib", "so" ),
|
||||||
|
WASM ("wasm", "" , "wasm" )
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class Architecture(val bitness: Int) {
|
enum class Architecture(val bitness: Int) : UserNamed {
|
||||||
X64(64),
|
X64(64),
|
||||||
ARM64(64),
|
ARM64(64),
|
||||||
ARM32(32),
|
ARM32(32),
|
||||||
MIPS32(32),
|
MIPS32(32),
|
||||||
MIPSEL32(32),
|
MIPSEL32(32),
|
||||||
WASM32(32);
|
WASM32(32);
|
||||||
|
|
||||||
val userName: String
|
|
||||||
get() = this.name.toLowerCase()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class KonanTarget(val family: Family, val architecture: Architecture, val detailedName: String, var enabled: Boolean = false) {
|
enum class KonanTarget(val family: Family, val architecture: Architecture, val detailedName: String, var enabled: Boolean = false) : UserNamed {
|
||||||
ANDROID_ARM32( Family.ANDROID, Architecture.ARM32, "android_arm32"),
|
ANDROID_ARM32( Family.ANDROID, Architecture.ARM32, "android_arm32"),
|
||||||
ANDROID_ARM64( Family.ANDROID, Architecture.ARM64, "android_arm64"),
|
ANDROID_ARM64( Family.ANDROID, Architecture.ARM64, "android_arm64"),
|
||||||
IPHONE( Family.IOS, Architecture.ARM64, "ios"),
|
IPHONE( Family.IOS, Architecture.ARM64, "ios"),
|
||||||
@@ -49,14 +48,12 @@ enum class KonanTarget(val family: Family, val architecture: Architecture, val d
|
|||||||
LINUX_MIPS32( Family.LINUX, Architecture.MIPS32, "linux_mips32"),
|
LINUX_MIPS32( Family.LINUX, Architecture.MIPS32, "linux_mips32"),
|
||||||
LINUX_MIPSEL32( Family.LINUX, Architecture.MIPSEL32, "linux_mipsel32"),
|
LINUX_MIPSEL32( Family.LINUX, Architecture.MIPSEL32, "linux_mipsel32"),
|
||||||
WASM32( Family.WASM, Architecture.WASM32, "wasm32");
|
WASM32( Family.WASM, Architecture.WASM32, "wasm32");
|
||||||
|
|
||||||
val userName get() = name.toLowerCase()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun hostTargetSuffix(host: KonanTarget, target: KonanTarget) =
|
fun hostTargetSuffix(host: KonanTarget, target: KonanTarget) =
|
||||||
if (target == host) host.detailedName else "${host.detailedName}-${target.detailedName}"
|
if (target == host) host.detailedName else "${host.detailedName}-${target.detailedName}"
|
||||||
|
|
||||||
enum class CompilerOutputKind {
|
enum class CompilerOutputKind: UserNamed {
|
||||||
PROGRAM {
|
PROGRAM {
|
||||||
override fun suffix(target: KonanTarget?) = ".${target!!.family.exeSuffix}"
|
override fun suffix(target: KonanTarget?) = ".${target!!.family.exeSuffix}"
|
||||||
},
|
},
|
||||||
@@ -82,7 +79,7 @@ class TargetManager(val userRequest: String? = null) {
|
|||||||
val targets = KonanTarget.values().associate{ it.userName to it }
|
val targets = KonanTarget.values().associate{ it.userName to it }
|
||||||
val target = determineCurrent()
|
val target = determineCurrent()
|
||||||
val targetName
|
val targetName
|
||||||
get() = target.name.toLowerCase()
|
get() = target.userName
|
||||||
|
|
||||||
|
|
||||||
fun known(name: String): String {
|
fun known(name: String): String {
|
||||||
@@ -165,7 +162,7 @@ class TargetManager(val userRequest: String? = null) {
|
|||||||
|
|
||||||
val hostSuffix get() = host.detailedName
|
val hostSuffix get() = host.detailedName
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val hostName get() = host.name.toLowerCase()
|
val hostName get() = host.userName
|
||||||
|
|
||||||
init {
|
init {
|
||||||
when (host) {
|
when (host) {
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2017 JetBrains s.r.o.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.konan.util
|
||||||
|
|
||||||
|
// This interface is good for Enums to make enum members available to users
|
||||||
|
// as low case words.
|
||||||
|
interface UserNamed {
|
||||||
|
val name: String
|
||||||
|
val userName get() = name.toLowerCase()
|
||||||
|
}
|
||||||
+1
-1
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.konan.target.TargetManager
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
internal val Project.host
|
internal val Project.host
|
||||||
get() = TargetManager.host.name.toLowerCase()
|
get() = TargetManager.host.userName
|
||||||
|
|
||||||
internal val Project.simpleOsName
|
internal val Project.simpleOsName
|
||||||
get() = TargetManager.simpleOsName()
|
get() = TargetManager.simpleOsName()
|
||||||
|
|||||||
Reference in New Issue
Block a user