He says make it an extension property.
This commit is contained in:
committed by
alexander-gorshenev
parent
dda43dd4a1
commit
eae130e246
+1
-1
@@ -19,7 +19,7 @@ package org.jetbrains.kotlin.native.interop.tool
|
|||||||
import org.jetbrains.kotlin.konan.file.*
|
import org.jetbrains.kotlin.konan.file.*
|
||||||
import org.jetbrains.kotlin.konan.properties.*
|
import org.jetbrains.kotlin.konan.properties.*
|
||||||
import org.jetbrains.kotlin.konan.target.*
|
import org.jetbrains.kotlin.konan.target.*
|
||||||
import org.jetbrains.kotlin.konan.util.DependencyProcessor
|
import org.jetbrains.kotlin.konan.util.*
|
||||||
import kotlin.reflect.KFunction
|
import kotlin.reflect.KFunction
|
||||||
|
|
||||||
class ToolConfig(userProvidedTargetName: String?, userProvidedKonanProperties: String?, runnerProvidedKonanHome: String) {
|
class ToolConfig(userProvidedTargetName: String?, userProvidedKonanProperties: String?, runnerProvidedKonanHome: String) {
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
|||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
import org.jetbrains.kotlin.konan.target.*
|
import org.jetbrains.kotlin.konan.target.*
|
||||||
import org.jetbrains.kotlin.konan.util.DependencyProcessor
|
import org.jetbrains.kotlin.konan.util.*
|
||||||
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
import org.jetbrains.kotlin.storage.LockBasedStorageManager
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -17,13 +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.VisibleNamed
|
import org.jetbrains.kotlin.konan.util.*
|
||||||
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 enabled: Boolean = true,
|
||||||
var verbose: Boolean = false) : VisibleNamed {
|
var verbose: Boolean = false) {
|
||||||
/* */ 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"),
|
||||||
|
|||||||
+1
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.backend.konan.library
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import org.jetbrains.kotlin.konan.file.File
|
import org.jetbrains.kotlin.konan.file.File
|
||||||
|
import org.jetbrains.kotlin.konan.util.visibleName
|
||||||
|
|
||||||
// This scheme describes the Konan Library (klib) layout.
|
// This scheme describes the Konan Library (klib) layout.
|
||||||
interface KonanLibraryLayout {
|
interface KonanLibraryLayout {
|
||||||
|
|||||||
+3
-2
@@ -17,6 +17,7 @@ import groovy.io.FileType
|
|||||||
import org.jetbrains.kotlin.konan.target.*
|
import org.jetbrains.kotlin.konan.target.*
|
||||||
import org.jetbrains.kotlin.konan.properties.*
|
import org.jetbrains.kotlin.konan.properties.*
|
||||||
import org.jetbrains.kotlin.konan.util.*
|
import org.jetbrains.kotlin.konan.util.*
|
||||||
|
import static org.jetbrains.kotlin.konan.util.VisibleNamedKt.*
|
||||||
|
|
||||||
defaultTasks 'clean', 'dist'
|
defaultTasks 'clean', 'dist'
|
||||||
|
|
||||||
@@ -65,7 +66,7 @@ allprojects {
|
|||||||
|
|
||||||
void setupHostAndTarget() {
|
void setupHostAndTarget() {
|
||||||
ext.hostName = TargetManager.hostName
|
ext.hostName = TargetManager.hostName
|
||||||
ext.targetList = TargetManager.enabled*.visibleName as List
|
ext.targetList = TargetManager.enabled.collect { getVisibleName(it) } as List
|
||||||
}
|
}
|
||||||
|
|
||||||
void setupClang(Project project) {
|
void setupClang(Project project) {
|
||||||
@@ -337,7 +338,7 @@ private ArrayList<DefFile> targetDefFiles(String target) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String targetToPlatform(String target) {
|
private String targetToPlatform(String target) {
|
||||||
new TargetManager(target).target.family.visibleName
|
getVisibleName(new TargetManager(target).target.family)
|
||||||
}
|
}
|
||||||
|
|
||||||
private String targetToOs(String target) {
|
private String targetToOs(String target) {
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import org.gradle.api.tasks.TaskAction
|
|||||||
import org.gradle.process.ExecResult
|
import org.gradle.process.ExecResult
|
||||||
import org.jetbrains.kotlin.konan.target.*
|
import org.jetbrains.kotlin.konan.target.*
|
||||||
import org.jetbrains.kotlin.konan.properties.*
|
import org.jetbrains.kotlin.konan.properties.*
|
||||||
|
import static org.jetbrains.kotlin.konan.util.VisibleNamedKt.*
|
||||||
|
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
|
|
||||||
@@ -109,7 +110,7 @@ abstract class KonanTest extends JavaExec {
|
|||||||
*moreArgs,
|
*moreArgs,
|
||||||
*project.globalTestArgs]
|
*project.globalTestArgs]
|
||||||
if (project.testTarget) {
|
if (project.testTarget) {
|
||||||
args "-target", target.visibleName
|
args "-target", getVisibleName(target)
|
||||||
}
|
}
|
||||||
if (enableKonanAssertions) {
|
if (enableKonanAssertions) {
|
||||||
args "-ea"
|
args "-ea"
|
||||||
@@ -447,7 +448,7 @@ class RunDriverKonanTest extends KonanTest {
|
|||||||
*moreArgs,
|
*moreArgs,
|
||||||
*project.globalTestArgs]
|
*project.globalTestArgs]
|
||||||
if (project.testTarget) {
|
if (project.testTarget) {
|
||||||
args "-target", target.visibleName
|
args "-target", getVisibleName(target)
|
||||||
}
|
}
|
||||||
if (enableKonanAssertions) {
|
if (enableKonanAssertions) {
|
||||||
args "-ea"
|
args "-ea"
|
||||||
@@ -469,7 +470,7 @@ class RunInteropKonanTest extends KonanTest {
|
|||||||
void setInterop(String value) {
|
void setInterop(String value) {
|
||||||
this.interop = value
|
this.interop = value
|
||||||
this.interopConf = project.kotlinNativeInterop[value]
|
this.interopConf = project.kotlinNativeInterop[value]
|
||||||
this.interopConf.target = target.visibleName
|
this.interopConf.target = getVisibleName(target)
|
||||||
this.dependsOn(this.interopConf.genTask)
|
this.dependsOn(this.interopConf.genTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ import org.gradle.api.tasks.SourceSet
|
|||||||
import org.gradle.api.tasks.TaskDependency
|
import org.gradle.api.tasks.TaskDependency
|
||||||
import org.gradle.internal.reflect.Instantiator
|
import org.gradle.internal.reflect.Instantiator
|
||||||
import org.jetbrains.kotlin.konan.target.*
|
import org.jetbrains.kotlin.konan.target.*
|
||||||
|
import org.jetbrains.kotlin.konan.util.*
|
||||||
|
import static org.jetbrains.kotlin.konan.util.VisibleNamedKt.*
|
||||||
|
|
||||||
class NamedNativeInteropConfig implements Named {
|
class NamedNativeInteropConfig implements Named {
|
||||||
|
|
||||||
@@ -146,7 +148,7 @@ class NamedNativeInteropConfig implements Named {
|
|||||||
}
|
}
|
||||||
|
|
||||||
File getNativeLibsDir() {
|
File getNativeLibsDir() {
|
||||||
def target = new TargetManager(target).target.visibleName
|
def target = getVisibleName(new TargetManager(target).target)
|
||||||
return new File(project.buildDir, "nativelibs/$target")
|
return new File(project.buildDir, "nativelibs/$target")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Vendored
+2
-1
@@ -22,6 +22,7 @@ import groovy.transform.stc.FromString
|
|||||||
import org.jetbrains.kotlin.konan.target.*
|
import org.jetbrains.kotlin.konan.target.*
|
||||||
import org.jetbrains.kotlin.konan.util.DependencyProcessor
|
import org.jetbrains.kotlin.konan.util.DependencyProcessor
|
||||||
import static org.jetbrains.kotlin.konan.target.KonanTarget.*
|
import static org.jetbrains.kotlin.konan.target.KonanTarget.*
|
||||||
|
import static org.jetbrains.kotlin.konan.util.VisibleNamedKt.*
|
||||||
import org.jetbrains.kotlin.konan.properties.KonanProperties
|
import org.jetbrains.kotlin.konan.properties.KonanProperties
|
||||||
import org.jetbrains.kotlin.konan.properties.*
|
import org.jetbrains.kotlin.konan.properties.*
|
||||||
|
|
||||||
@@ -218,7 +219,7 @@ enum DependencyKind {
|
|||||||
DependencyKind(String name,
|
DependencyKind(String name,
|
||||||
@ClosureParams(value = FromString.class, options = "KonanProperties") Closure<String> dirGetter,
|
@ClosureParams(value = FromString.class, options = "KonanProperties") Closure<String> dirGetter,
|
||||||
@ClosureParams(value = FromString.class, options = "KonanTarget") Closure<String> propertyNameGetter =
|
@ClosureParams(value = FromString.class, options = "KonanTarget") Closure<String> propertyNameGetter =
|
||||||
{target -> "${target.visibleName}${name.capitalize()}Dir"}) {
|
{target -> "${getVisibleName(target)}${name.capitalize()}Dir"}) {
|
||||||
this.name = name
|
this.name = name
|
||||||
this.dirGetter = dirGetter
|
this.dirGetter = dirGetter
|
||||||
this.propertyNameGetter = propertyNameGetter
|
this.propertyNameGetter = propertyNameGetter
|
||||||
|
|||||||
+1
-6
@@ -16,9 +16,4 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.konan.util
|
package org.jetbrains.kotlin.konan.util
|
||||||
|
|
||||||
// This interface is good for Enums to make enum members available to users
|
val <T : Enum<T>> T.visibleName get() = name.toLowerCase()
|
||||||
// as low case words.
|
|
||||||
interface VisibleNamed {
|
|
||||||
val name: String
|
|
||||||
val visibleName get() = name.toLowerCase()
|
|
||||||
}
|
|
||||||
@@ -16,9 +16,9 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.konan.target
|
package org.jetbrains.kotlin.konan.target
|
||||||
|
|
||||||
import org.jetbrains.kotlin.konan.util.VisibleNamed
|
import org.jetbrains.kotlin.konan.util.visibleName
|
||||||
|
|
||||||
enum class Family(val exeSuffix:String, val dynamicPrefix: String, val dynamicSuffix: String) : VisibleNamed {
|
enum class Family(val exeSuffix:String, val dynamicPrefix: String, val dynamicSuffix: String) {
|
||||||
OSX ("kexe", "lib", "dylib"),
|
OSX ("kexe", "lib", "dylib"),
|
||||||
IOS ("kexe", "lib", "dylib"),
|
IOS ("kexe", "lib", "dylib"),
|
||||||
LINUX ("kexe", "lib", "so" ),
|
LINUX ("kexe", "lib", "so" ),
|
||||||
@@ -27,7 +27,7 @@ enum class Family(val exeSuffix:String, val dynamicPrefix: String, val dynamicSu
|
|||||||
WASM ("wasm", "" , "wasm" )
|
WASM ("wasm", "" , "wasm" )
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class Architecture(val bitness: Int) : VisibleNamed {
|
enum class Architecture(val bitness: Int) {
|
||||||
X64(64),
|
X64(64),
|
||||||
ARM64(64),
|
ARM64(64),
|
||||||
ARM32(32),
|
ARM32(32),
|
||||||
@@ -36,7 +36,7 @@ enum class Architecture(val bitness: Int) : VisibleNamed {
|
|||||||
WASM32(32);
|
WASM32(32);
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class KonanTarget(val family: Family, val architecture: Architecture, val detailedName: String, var enabled: Boolean = false) : VisibleNamed {
|
enum class KonanTarget(val family: Family, val architecture: Architecture, val detailedName: String, var enabled: Boolean = false) {
|
||||||
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"),
|
||||||
@@ -53,7 +53,7 @@ enum class KonanTarget(val family: Family, val architecture: Architecture, val d
|
|||||||
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: VisibleNamed {
|
enum class CompilerOutputKind {
|
||||||
PROGRAM {
|
PROGRAM {
|
||||||
override fun suffix(target: KonanTarget?) = ".${target!!.family.exeSuffix}"
|
override fun suffix(target: KonanTarget?) = ".${target!!.family.exeSuffix}"
|
||||||
},
|
},
|
||||||
|
|||||||
+1
@@ -29,6 +29,7 @@ import org.gradle.util.ConfigureUtil
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask
|
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import org.jetbrains.kotlin.konan.target.TargetManager
|
import org.jetbrains.kotlin.konan.target.TargetManager
|
||||||
|
import org.jetbrains.kotlin.konan.util.visibleName
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
/** Base class for all Kotlin/Native artifacts. */
|
/** Base class for all Kotlin/Native artifacts. */
|
||||||
|
|||||||
+1
@@ -25,6 +25,7 @@ import org.gradle.api.tasks.Internal
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanArtifactWithLibrariesTask
|
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanArtifactWithLibrariesTask
|
||||||
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask
|
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
|
import org.jetbrains.kotlin.konan.util.visibleName
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
open class KonanLibrariesSpec(val task: KonanArtifactWithLibrariesTask, val project: Project) {
|
open class KonanLibrariesSpec(val task: KonanArtifactWithLibrariesTask, val project: Project) {
|
||||||
|
|||||||
+1
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.gradle.plugin.KonanPlugin.Companion.COMPILE_ALL_TASK
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.tasks.*
|
import org.jetbrains.kotlin.gradle.plugin.tasks.*
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import org.jetbrains.kotlin.konan.target.TargetManager
|
import org.jetbrains.kotlin.konan.target.TargetManager
|
||||||
|
import org.jetbrains.kotlin.konan.util.visibleName
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|||||||
+1
@@ -20,6 +20,7 @@ import org.gradle.api.Project
|
|||||||
import org.gradle.tooling.provider.model.ToolingModelBuilder
|
import org.gradle.tooling.provider.model.ToolingModelBuilder
|
||||||
import org.jetbrains.kotlin.gradle.plugin.model.KonanArtifact
|
import org.jetbrains.kotlin.gradle.plugin.model.KonanArtifact
|
||||||
import org.jetbrains.kotlin.gradle.plugin.model.KonanModel
|
import org.jetbrains.kotlin.gradle.plugin.model.KonanModel
|
||||||
|
import org.jetbrains.kotlin.konan.util.visibleName
|
||||||
|
|
||||||
object KonanToolingModelBuilder : ToolingModelBuilder {
|
object KonanToolingModelBuilder : ToolingModelBuilder {
|
||||||
override fun canBuild(modelName: String): Boolean = KonanModel::class.java.name == modelName
|
override fun canBuild(modelName: String): Boolean = KonanModel::class.java.name == modelName
|
||||||
|
|||||||
+1
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.gradle.plugin.KonanArtifactWithLibrariesSpec
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.KonanLibrariesSpec
|
import org.jetbrains.kotlin.gradle.plugin.KonanLibrariesSpec
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import org.jetbrains.kotlin.konan.target.TargetManager
|
import org.jetbrains.kotlin.konan.target.TargetManager
|
||||||
|
import org.jetbrains.kotlin.konan.util.visibleName
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
internal val Project.host
|
internal val Project.host
|
||||||
|
|||||||
+1
@@ -20,6 +20,7 @@ import org.gradle.api.file.FileCollection
|
|||||||
import org.gradle.api.tasks.*
|
import org.gradle.api.tasks.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||||
|
import org.jetbrains.kotlin.konan.util.visibleName
|
||||||
|
|
||||||
enum class Produce(val cliOption: String, val kind: CompilerOutputKind) {
|
enum class Produce(val cliOption: String, val kind: CompilerOutputKind) {
|
||||||
PROGRAM("program", CompilerOutputKind.PROGRAM),
|
PROGRAM("program", CompilerOutputKind.PROGRAM),
|
||||||
|
|||||||
+1
-2
@@ -21,8 +21,7 @@ import org.gradle.api.GradleScriptException
|
|||||||
import org.gradle.api.tasks.Internal
|
import org.gradle.api.tasks.Internal
|
||||||
import org.gradle.api.tasks.TaskAction
|
import org.gradle.api.tasks.TaskAction
|
||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
import org.jetbrains.kotlin.konan.util.DependencyProcessor
|
import org.jetbrains.kotlin.konan.util.*
|
||||||
import org.jetbrains.kotlin.konan.util.DependencySource
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
|
||||||
|
|||||||
+1
@@ -24,6 +24,7 @@ import org.gradle.util.ConfigureUtil
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.*
|
import org.jetbrains.kotlin.gradle.plugin.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KonanInteropSpec.IncludeDirectoriesSpec
|
import org.jetbrains.kotlin.gradle.plugin.KonanInteropSpec.IncludeDirectoriesSpec
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
|
import org.jetbrains.kotlin.konan.util.visibleName
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,7 @@ class KonanProject {
|
|||||||
static String DEFAULT_ARTIFACT_NAME = 'main'
|
static String DEFAULT_ARTIFACT_NAME = 'main'
|
||||||
static String DEFAULT_INTEROP_NAME = "stdio"
|
static String DEFAULT_INTEROP_NAME = "stdio"
|
||||||
|
|
||||||
static String HOST = TargetManager.host.visibleName
|
static String HOST = TargetManager.hostName
|
||||||
|
|
||||||
File projectDir
|
File projectDir
|
||||||
Path projectPath
|
Path projectPath
|
||||||
|
|||||||
Reference in New Issue
Block a user