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.properties.*
import org.jetbrains.kotlin.konan.target.*
import org.jetbrains.kotlin.konan.util.DependencyProcessor
import kotlin.reflect.KFunction
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 properties = konanPropertiesFile.loadProperties()
private val dependencies = File(konanHome, "dependencies")
private val dependencies = DependencyProcessor.defaultDependenciesRoot
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.file.*
import org.jetbrains.kotlin.konan.properties.*
import org.jetbrains.kotlin.konan.util.DependencyProcessor
class Distribution(val targetManager: TargetManager,
val propertyFileOverride: String? = null,
@@ -47,7 +48,7 @@ class Distribution(val targetManager: TargetManager,
val stdlib = "$klib/common/stdlib"
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 hostProperties = if (target == host) {
+1 -1
View File
@@ -26,7 +26,7 @@ ext {
konanPropertiesFile = project(':backend.native').file('konan.properties')
konanProperties = PropertiesKt.loadProperties(konanPropertiesFile.absolutePath)
dependenciesDir = rootProject.file("dist/dependencies")
dependenciesDir = DependencyProcessor.defaultDependenciesRoot
clangManager = new ClangManager(konanProperties, dependenciesDir.absolutePath)
kotlinCompilerModule="org.jetbrains.kotlin:kotlin-compiler:${kotlinVersion}"
kotlinStdLibModule="org.jetbrains.kotlin:kotlin-stdlib:${kotlinStdLibVersion}"
@@ -160,9 +160,13 @@ class DependencyProcessor(dependenciesRoot: File,
}
companion object {
val lock = ReentrantLock()
private val lock = ReentrantLock()
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 {
@@ -20,6 +20,7 @@ import org.gradle.api.Named
import org.gradle.api.Project
import org.gradle.api.file.FileCollection
import org.jetbrains.kotlin.gradle.plugin.tasks.host
import org.jetbrains.kotlin.konan.util.DependencyProcessor
internal interface KonanToolRunner: Named {
val mainClass: String
@@ -79,7 +80,7 @@ internal class KonanInteropRunner(project: Project)
{
init {
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" +
"\\bin;${System.getenv("PATH")}")
}