Store native dependencies in HOME/.konan
This commit is contained in:
+2
-1
@@ -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)
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -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
@@ -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 {
|
||||||
|
|||||||
+2
-1
@@ -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")}")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user