gradle-plugin: Support user jvm args

This commit is contained in:
Ilya Matveev
2017-11-28 19:10:04 +07:00
committed by ilmat192
parent 8d8da0acf2
commit 4a8d07493c
5 changed files with 17 additions and 4 deletions
+2
View File
@@ -287,6 +287,7 @@ targetList.each { target ->
targetDefFiles(target).forEach{
defFile ->
def taskName = defFileToTaskName(target, defFile.name)
def jvmArgs = project.findProperty("platfromLibsJvmArgs") ?: "-Xmx3G"
def suffix = null
if (new PlatformInfo().isWindows())
suffix = 'bat'
@@ -298,6 +299,7 @@ targetList.each { target ->
buildFile project('klib').file('platform.gradle')
dir project(':klib').projectDir
startParameter.projectProperties = [
'konan.jvmArgs' : jvmArgs,
'kotlin_version' : kotlin_version,
'name' : defFile.name,
'defFile' : defFile.file.absolutePath,
+2 -1
View File
@@ -1 +1,2 @@
konan.home=../../dist
konan.home=../../dist
konan.jvmArgs=-Xmx3G
+2 -1
View File
@@ -1 +1,2 @@
konan.home=../..
konan.home=../..
konan.jvmArgs=-Xmx3G
@@ -34,6 +34,7 @@ import javax.inject.Inject
* konan.home - directory where compiler is located (aka dist in konan project output).
* konan.version - a konan compiler version for downloading.
* konan.build.targets - list of targets to build (by default all the declared targets are built).
* konan.jvmArgs - additional args to be passed to a JVM executing the compiler/cinterop tool.
*/
internal fun Project.hasProperty(property: KonanPlugin.ProjectProperty) = hasProperty(property.propertyName)
@@ -90,6 +91,9 @@ internal val Project.requestedTargets
it.toString().trim().split("\\s+".toRegex())
}.orEmpty()
internal val Project.jvmArgs
get() = (findProperty(KonanPlugin.ProjectProperty.KONAN_JVM_ARGS) as String?)?.split("\\s+".toRegex()).orEmpty()
internal val Project.compileAllTask
get() = getOrCreateTask(COMPILE_ALL_TASK_NAME)
@@ -223,6 +227,8 @@ open class KonanExtension {
var languageVersion: String? = null
var apiVersion: String? = null
val jvmArgs = mutableListOf<String>()
internal val konanTargets: List<KonanTarget>
get() = targets.map { TargetManager(it).target }.distinct()
}
@@ -234,6 +240,7 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR
KONAN_HOME ("konan.home"),
KONAN_VERSION ("konan.version"),
KONAN_BUILD_TARGETS ("konan.build.targets"),
KONAN_JVM_ARGS ("konan.jvmArgs"),
DOWNLOAD_COMPILER ("download.compiler")
}
@@ -50,9 +50,11 @@ internal abstract class KonanCliRunner(val toolName: String, val fullName: Strin
override val jvmArgs = mutableListOf(
"-ea",
"-Xmx3G",
"-Dkonan.home=${project.konanHome}",
"-Djava.library.path=${project.konanHome}/konan/nativelib")
"-Djava.library.path=${project.konanHome}/konan/nativelib").apply {
addAll(project.konanExtension.jvmArgs)
addAll(project.jvmArgs)
}
override val environment = mutableMapOf("LIBCLANG_DISABLE_CRASH_RECOVERY" to "1")