Store native dependencies in HOME/.konan

This commit is contained in:
Ilya Matveev
2017-10-27 19:54:14 +03:00
committed by ilmat192
parent bbeefb0b56
commit ea422a87f3
5 changed files with 12 additions and 5 deletions
@@ -19,6 +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 kotlin.reflect.KFunction import kotlin.reflect.KFunction
class ToolConfig(userProvidedTargetName: String?, userProvidedKonanProperties: String?, runnerProvidedKonanHome: String) { class ToolConfig(userProvidedTargetName: String?, userProvidedKonanProperties: String?, runnerProvidedKonanHome: String) {
@@ -31,7 +32,7 @@ class ToolConfig(userProvidedTargetName: String?, userProvidedKonanProperties: S
private val konanPropertiesFile = userProvidedKonanProperties ?. File() ?: File(konanHome, "konan/konan.properties") private val konanPropertiesFile = userProvidedKonanProperties ?. File() ?: File(konanHome, "konan/konan.properties")
private val properties = konanPropertiesFile.loadProperties() private val properties = konanPropertiesFile.loadProperties()
private val dependencies = File(konanHome, "dependencies") private val dependencies = DependencyProcessor.defaultDependenciesRoot
private val targetProperties = KonanProperties(target, properties, dependencies.path) private val targetProperties = KonanProperties(target, properties, dependencies.path)
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.backend.konan
import org.jetbrains.kotlin.konan.target.* import org.jetbrains.kotlin.konan.target.*
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.util.DependencyProcessor
class Distribution(val targetManager: TargetManager, class Distribution(val targetManager: TargetManager,
val propertyFileOverride: String? = null, val propertyFileOverride: String? = null,
@@ -47,7 +48,7 @@ class Distribution(val targetManager: TargetManager,
val stdlib = "$klib/common/stdlib" val stdlib = "$klib/common/stdlib"
val runtime = runtimeFileOverride ?: "$stdlib/targets/${targetName}/native/runtime.bc" val runtime = runtimeFileOverride ?: "$stdlib/targets/${targetName}/native/runtime.bc"
val dependenciesDir = "$konanHome/dependencies" val dependenciesDir = DependencyProcessor.defaultDependenciesRoot.absolutePath
val targetProperties = KonanProperties(target, properties, dependenciesDir) val targetProperties = KonanProperties(target, properties, dependenciesDir)
val hostProperties = if (target == host) { val hostProperties = if (target == host) {
+1 -1
View File
@@ -26,7 +26,7 @@ ext {
konanPropertiesFile = project(':backend.native').file('konan.properties') konanPropertiesFile = project(':backend.native').file('konan.properties')
konanProperties = PropertiesKt.loadProperties(konanPropertiesFile.absolutePath) konanProperties = PropertiesKt.loadProperties(konanPropertiesFile.absolutePath)
dependenciesDir = rootProject.file("dist/dependencies") dependenciesDir = DependencyProcessor.defaultDependenciesRoot
clangManager = new ClangManager(konanProperties, dependenciesDir.absolutePath) clangManager = new ClangManager(konanProperties, dependenciesDir.absolutePath)
kotlinCompilerModule="org.jetbrains.kotlin:kotlin-compiler:${kotlinVersion}" kotlinCompilerModule="org.jetbrains.kotlin:kotlin-compiler:${kotlinVersion}"
kotlinStdLibModule="org.jetbrains.kotlin:kotlin-stdlib:${kotlinStdLibVersion}" kotlinStdLibModule="org.jetbrains.kotlin:kotlin-stdlib:${kotlinStdLibVersion}"
@@ -160,9 +160,13 @@ class DependencyProcessor(dependenciesRoot: File,
} }
companion object { companion object {
val lock = ReentrantLock() private val lock = ReentrantLock()
const val DEFAULT_HOME_DEPENDENCY_CACHE = ".konan/cache" const val DEFAULT_HOME_DEPENDENCY_CACHE = ".konan/cache"
@JvmStatic
val defaultDependenciesRoot
get() = Paths.get(System.getProperty("user.home")).resolve(".konan/dependencies").toFile()
} }
fun run() = lock.withLock { fun run() = lock.withLock {
@@ -20,6 +20,7 @@ import org.gradle.api.Named
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.file.FileCollection import org.gradle.api.file.FileCollection
import org.jetbrains.kotlin.gradle.plugin.tasks.host import org.jetbrains.kotlin.gradle.plugin.tasks.host
import org.jetbrains.kotlin.konan.util.DependencyProcessor
internal interface KonanToolRunner: Named { internal interface KonanToolRunner: Named {
val mainClass: String val mainClass: String
@@ -79,7 +80,7 @@ internal class KonanInteropRunner(project: Project)
{ {
init { init {
if (project.host == "mingw") { if (project.host == "mingw") {
environment.put("PATH", "${project.konanHome}\\dependencies" + environment.put("PATH", DependencyProcessor.defaultDependenciesRoot.absolutePath +
"\\msys2-mingw-w64-x86_64-gcc-6.3.0-clang-llvm-3.9.1-windows-x86-64" + "\\msys2-mingw-w64-x86_64-gcc-6.3.0-clang-llvm-3.9.1-windows-x86-64" +
"\\bin;${System.getenv("PATH")}") "\\bin;${System.getenv("PATH")}")
} }