diff --git a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/ToolConfig.kt b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/ToolConfig.kt index 13df2c6a476..df53df4d828 100644 --- a/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/ToolConfig.kt +++ b/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/ToolConfig.kt @@ -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) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Distribution.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Distribution.kt index 708abac48fd..f3d442f249e 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Distribution.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Distribution.kt @@ -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) { diff --git a/build.gradle b/build.gradle index c5fca6757cf..25b784a24c7 100644 --- a/build.gradle +++ b/build.gradle @@ -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}" diff --git a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/util/DependencyProcessor.kt b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/util/DependencyProcessor.kt index f3c9d65ef96..7988bb7ad3e 100644 --- a/shared/src/main/kotlin/org/jetbrains/kotlin/konan/util/DependencyProcessor.kt +++ b/shared/src/main/kotlin/org/jetbrains/kotlin/konan/util/DependencyProcessor.kt @@ -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 { diff --git a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KonanToolRunner.kt b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KonanToolRunner.kt index 201087cba5b..7f0c3da259b 100644 --- a/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KonanToolRunner.kt +++ b/tools/kotlin-native-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KonanToolRunner.kt @@ -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")}") }