backend: Use konan.dependencies property to set dependencies dir

This patch set default dependencies directory to ${konan.home}/
dependencies and allows one to override this setting using
konan.dependencies system property.
This commit is contained in:
Ilya Matveev
2017-03-21 16:03:57 +07:00
committed by ilmat192
parent 52a245bb10
commit 4a716fbf30
5 changed files with 13 additions and 10 deletions
@@ -231,12 +231,10 @@ private fun processLib(konanHome: String,
val konanFile = File(konanFileName)
val konanProperties = loadProperties(konanFile, mapOf())
// TODO: We use -Dkonan.home in the absence of fully built 'dist'
// to locate the 'dependencies' directory.
// Eventually we need to pull the necessary content into 'dist'.
// And provide a set of flags to find the components in the absence of 'dist'.
// TODO: We can provide a set of flags to find the components in the absence of 'dist' or 'dist/dependencies'.
val llvmHome = konanProperties.getOsSpecific("llvmHome")!!
val dependencies = File("$konanHome/../dependencies/all").canonicalPath
// We can override dependency directory using konan.dependencies system property.
val dependencies = System.getProperty("konan.dependencies", "$konanHome/dependencies")
val llvmInstallPath = "$dependencies/$llvmHome"
val additionalHeaders = args["-h"].orEmpty()
val additionalCompilerOpts = args["-copt"].orEmpty()
+2
View File
@@ -194,6 +194,7 @@ targetList.each { target ->
classpath = project.configurations.cli_bc
jvmArgs "-ea",
"-Dkonan.home=${project.parent.file('dist')}",
"-Dkonan.dependencies=${project.parent.file('dependencies/all')}",
"-Djava.library.path=${project.buildDir}/nativelibs"
args('-output', project(':runtime').file("build/${target}/stdlib.kt.bc"),
'-nolink', '-nostdlib', '-ea',
@@ -220,6 +221,7 @@ targetList.each { target ->
classpath = project.configurations.cli_bc
jvmArgs "-ea",
"-Dkonan.home=${project.parent.file('dist')}",
"-Dkonan.dependencies=${project.parent.file('dependencies/all')}",
"-Djava.library.path=${project.buildDir}/nativelibs"
args('-output', project(':runtime').file("build/${target}/start.kt.bc"),
'-nolink', '-nostdlib', '-ea',
@@ -2,9 +2,8 @@ package org.jetbrains.kotlin.backend.konan
import org.jetbrains.kotlin.config.CompilerConfiguration
import java.io.File
import java.util.Properties
public class Distribution(val config: CompilerConfiguration) {
class Distribution(val config: CompilerConfiguration) {
val targetManager = TargetManager(config)
val target =
@@ -25,8 +24,8 @@ public class Distribution(val config: CompilerConfiguration) {
val lib = "$konanHome/lib/$target"
// TODO: Pack all needed things to dist.
val dependencies = "$konanHome/../dependencies/all"
// We can override dependency directory using konan.dependencies system property.
val dependencies = System.getProperty("konan.dependencies", "$konanHome/dependencies")
val stdlib = "$lib/stdlib.kt.bc"
val start = "$lib/start.kt.bc"
@@ -12,6 +12,7 @@ abstract class KonanTest extends JavaExec {
def backendNative = project.project(":backend.native")
def runtimeProject = project.project(":runtime")
def dist = project.rootProject.file("dist")
def dependencies = project.findProject(":dependencies").file("all")
def runtimeBc = new File("${dist.canonicalPath}/lib/runtime.bc").absolutePath
def launcherBc = new File("${dist.canonicalPath}/lib/launcher.bc").absolutePath
def startKtBc = new File("${dist.canonicalPath}/lib/start.kt.bc").absolutePath
@@ -56,7 +57,9 @@ abstract class KonanTest extends JavaExec {
@Override
void setJvmArgs(Iterable<?> arguments) {
super.setJvmArgs(arguments + "-Dkonan.home=${dist.canonicalPath}" +
super.setJvmArgs(arguments +
"-Dkonan.home=${dist.canonicalPath}" +
"-Dkonan.dependencies=${dependencies.canonicalPat}",
"-Djava.library.path=${dist.canonicalPath}/konan/nativelib")
}
@@ -168,6 +168,7 @@ class NamedNativeInteropConfig implements Named {
new File(project.findProject(":Interop:Runtime").buildDir, "nativelibs")
).asPath
systemProperties "konan.home": project.rootProject.file("dist")
systemProperties "konan.dependencies": project.findProject(":dependencies").file("all")
environment "LIBCLANG_DISABLE_CRASH_RECOVERY": "1"
environment "DYLD_LIBRARY_PATH": "${project.llvmDir}/lib"
environment "LD_LIBRARY_PATH": "${project.llvmDir}/lib"