Skip to content
This repository was archived by the owner on Aug 10, 2021. It is now read-only.

Commit

Permalink
He says make it an extension property.
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-gorshenev committed Dec 18, 2017
1 parent dda43dd commit eae130e
Show file tree
Hide file tree
Showing 19 changed files with 32 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ package org.jetbrains.kotlin.native.interop.tool
import org.jetbrains.kotlin.konan.file.*
import org.jetbrains.kotlin.konan.properties.*
import org.jetbrains.kotlin.konan.target.*
import org.jetbrains.kotlin.konan.util.DependencyProcessor
import org.jetbrains.kotlin.konan.util.*
import kotlin.reflect.KFunction

class ToolConfig(userProvidedTargetName: String?, userProvidedKonanProperties: String?, runnerProvidedKonanHome: String) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.konan.file.File
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.StorageManager

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@
package org.jetbrains.kotlin.backend.konan

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

enum class KonanPhase(val description: String,
vararg prerequisite: KonanPhase,
var enabled: Boolean = true,
var verbose: Boolean = false) : VisibleNamed {
var verbose: Boolean = false) {
/* */ FRONTEND("Frontend builds AST"),
/* */ PSI_TO_IR("Psi to IR conversion"),
/* */ SERIALIZER("Serialize descriptor tree and inline IR bodies"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package org.jetbrains.kotlin.backend.konan.library

import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.file.File
import org.jetbrains.kotlin.konan.util.visibleName

// This scheme describes the Konan Library (klib) layout.
interface KonanLibraryLayout {
Expand Down
5 changes: 3 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import groovy.io.FileType
import org.jetbrains.kotlin.konan.target.*
import org.jetbrains.kotlin.konan.properties.*
import org.jetbrains.kotlin.konan.util.*
import static org.jetbrains.kotlin.konan.util.VisibleNamedKt.*

defaultTasks 'clean', 'dist'

Expand Down Expand Up @@ -65,7 +66,7 @@ allprojects {

void setupHostAndTarget() {
ext.hostName = TargetManager.hostName
ext.targetList = TargetManager.enabled*.visibleName as List
ext.targetList = TargetManager.enabled.collect { getVisibleName(it) } as List
}

void setupClang(Project project) {
Expand Down Expand Up @@ -337,7 +338,7 @@ private ArrayList<DefFile> targetDefFiles(String target) {
}

private String targetToPlatform(String target) {
new TargetManager(target).target.family.visibleName
getVisibleName(new TargetManager(target).target.family)
}

private String targetToOs(String target) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import org.gradle.api.tasks.TaskAction
import org.gradle.process.ExecResult
import org.jetbrains.kotlin.konan.target.*
import org.jetbrains.kotlin.konan.properties.*
import static org.jetbrains.kotlin.konan.util.VisibleNamedKt.*

import java.util.regex.Pattern

Expand Down Expand Up @@ -109,7 +110,7 @@ abstract class KonanTest extends JavaExec {
*moreArgs,
*project.globalTestArgs]
if (project.testTarget) {
args "-target", target.visibleName
args "-target", getVisibleName(target)
}
if (enableKonanAssertions) {
args "-ea"
Expand Down Expand Up @@ -447,7 +448,7 @@ class RunDriverKonanTest extends KonanTest {
*moreArgs,
*project.globalTestArgs]
if (project.testTarget) {
args "-target", target.visibleName
args "-target", getVisibleName(target)
}
if (enableKonanAssertions) {
args "-ea"
Expand All @@ -469,7 +470,7 @@ class RunInteropKonanTest extends KonanTest {
void setInterop(String value) {
this.interop = value
this.interopConf = project.kotlinNativeInterop[value]
this.interopConf.target = target.visibleName
this.interopConf.target = getVisibleName(target)
this.dependsOn(this.interopConf.genTask)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.TaskDependency
import org.gradle.internal.reflect.Instantiator
import org.jetbrains.kotlin.konan.target.*
import org.jetbrains.kotlin.konan.util.*
import static org.jetbrains.kotlin.konan.util.VisibleNamedKt.*

class NamedNativeInteropConfig implements Named {

Expand Down Expand Up @@ -146,7 +148,7 @@ class NamedNativeInteropConfig implements Named {
}

File getNativeLibsDir() {
def target = new TargetManager(target).target.visibleName
def target = getVisibleName(new TargetManager(target).target)
return new File(project.buildDir, "nativelibs/$target")
}

Expand Down
3 changes: 2 additions & 1 deletion dependencies/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import groovy.transform.stc.FromString
import org.jetbrains.kotlin.konan.target.*
import org.jetbrains.kotlin.konan.util.DependencyProcessor
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.*

Expand Down Expand Up @@ -218,7 +219,7 @@ enum DependencyKind {
DependencyKind(String name,
@ClosureParams(value = FromString.class, options = "KonanProperties") Closure<String> dirGetter,
@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.dirGetter = dirGetter
this.propertyNameGetter = propertyNameGetter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,4 @@

package org.jetbrains.kotlin.konan.util

// This interface is good for Enums to make enum members available to users
// as low case words.
interface VisibleNamed {
val name: String
val visibleName get() = name.toLowerCase()
}
val <T : Enum<T>> T.visibleName get() = name.toLowerCase()
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

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"),
IOS ("kexe", "lib", "dylib"),
LINUX ("kexe", "lib", "so" ),
Expand All @@ -27,7 +27,7 @@ enum class Family(val exeSuffix:String, val dynamicPrefix: String, val dynamicSu
WASM ("wasm", "" , "wasm" )
}

enum class Architecture(val bitness: Int) : VisibleNamed {
enum class Architecture(val bitness: Int) {
X64(64),
ARM64(64),
ARM32(32),
Expand All @@ -36,7 +36,7 @@ enum class Architecture(val bitness: Int) : VisibleNamed {
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_ARM64( Family.ANDROID, Architecture.ARM64, "android_arm64"),
IPHONE( Family.IOS, Architecture.ARM64, "ios"),
Expand All @@ -53,7 +53,7 @@ enum class KonanTarget(val family: Family, val architecture: Architecture, val d
fun hostTargetSuffix(host: KonanTarget, target: KonanTarget) =
if (target == host) host.detailedName else "${host.detailedName}-${target.detailedName}"

enum class CompilerOutputKind: VisibleNamed {
enum class CompilerOutputKind {
PROGRAM {
override fun suffix(target: KonanTarget?) = ".${target!!.family.exeSuffix}"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import org.gradle.util.ConfigureUtil
import org.jetbrains.kotlin.gradle.plugin.tasks.KonanBuildingTask
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.target.TargetManager
import org.jetbrains.kotlin.konan.util.visibleName
import java.io.File

/** Base class for all Kotlin/Native artifacts. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.KonanBuildingTask
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.util.visibleName
import java.io.File

open class KonanLibrariesSpec(val task: KonanArtifactWithLibrariesTask, val project: Project) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.target.TargetManager
import org.jetbrains.kotlin.konan.util.visibleName
import java.io.File
import java.util.*
import javax.inject.Inject
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import org.gradle.api.Project
import org.gradle.tooling.provider.model.ToolingModelBuilder
import org.jetbrains.kotlin.gradle.plugin.model.KonanArtifact
import org.jetbrains.kotlin.gradle.plugin.model.KonanModel
import org.jetbrains.kotlin.konan.util.visibleName

object KonanToolingModelBuilder : ToolingModelBuilder {
override fun canBuild(modelName: String): Boolean = KonanModel::class.java.name == modelName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import org.jetbrains.kotlin.gradle.plugin.KonanArtifactWithLibrariesSpec
import org.jetbrains.kotlin.gradle.plugin.KonanLibrariesSpec
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.target.TargetManager
import org.jetbrains.kotlin.konan.util.visibleName
import java.io.File

internal val Project.host
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.*
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
import org.jetbrains.kotlin.konan.util.visibleName

enum class Produce(val cliOption: String, val kind: CompilerOutputKind) {
PROGRAM("program", CompilerOutputKind.PROGRAM),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ import org.gradle.api.GradleScriptException
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.TaskAction
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.konan.util.DependencyProcessor
import org.jetbrains.kotlin.konan.util.DependencySource
import org.jetbrains.kotlin.konan.util.*
import java.io.File
import java.io.IOException

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import org.gradle.util.ConfigureUtil
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.KonanInteropSpec.IncludeDirectoriesSpec
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.util.visibleName
import java.io.File

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class KonanProject {
static String DEFAULT_ARTIFACT_NAME = 'main'
static String DEFAULT_INTEROP_NAME = "stdio"

static String HOST = TargetManager.host.visibleName
static String HOST = TargetManager.hostName

File projectDir
Path projectPath
Expand Down

0 comments on commit eae130e

Please sign in to comment.