Splitted KonanProperties into Configurables hierarchy.

Untangled Platfrom classes from the LinkStage and Distribution.
Simplified clang management a little.
This commit is contained in:
Alexander Gorshenev
2018-01-19 17:11:48 +03:00
committed by alexander-gorshenev
parent c5276cf6da
commit d4b47ac709
25 changed files with 653 additions and 558 deletions
+5 -5
View File
@@ -23,7 +23,7 @@ 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.KonanPropertiesLoader
import org.jetbrains.kotlin.konan.properties.*
buildscript {
@@ -210,14 +210,14 @@ class HelperNativeDep extends TgzNativeDep {
enum DependencyKind {
LLVM( "llvm", { it.llvmHome }, { "llvmDir" } ),
GCC_TOOLCHAIN( "gccToolchain", { it.gccToolchain }, { "gccToolchainDir" }),
GCC_TOOLCHAIN( "gccToolchain", { (it instanceof LinuxBasedConfigurables) ? it.gccToolchain : null }, { "gccToolchainDir" }),
SYSROOT( "sysroot", { it.targetSysRoot } ),
LIBFFI( "libffi", { it.libffiDir } ),
TARGET_TOOLCHAIN("targetToolchain", { it.targetToolchain } )
DependencyKind(String name,
@ClosureParams(value = FromString.class, options = "KonanProperties") Closure<String> dirGetter,
@ClosureParams(value = FromString.class, options = "KonanPropertiesLoader") Closure<String> dirGetter,
@ClosureParams(value = FromString.class, options = "KonanTarget") Closure<String> propertyNameGetter =
{target -> "${getVisibleName(target)}${name.capitalize()}Dir"}) {
this.name = name
@@ -229,7 +229,7 @@ enum DependencyKind {
private Closure<String> dirGetter // KonanProperties -> String
private Closure<String> propertyNameGetter // KonanTarget -> String
String getDirectory(KonanProperties properties) {
String getDirectory(KonanPropertiesLoader properties) {
return dirGetter(properties)
}
@@ -241,7 +241,7 @@ enum DependencyKind {
}
TargetManager.enabled.each { target ->
def konanProperties = new KonanProperties(target,
def konanProperties = new KonanPropertiesLoader(target,
rootProject.ext.konanProperties,
rootProject.ext.dependenciesDir.canonicalPath
)