From e831964871e2eab0e7edf95922061043768bb72a Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Thu, 7 Jun 2018 11:03:26 +0300 Subject: [PATCH] jps, daemon: pass incremental compilation flag from jps process to daemon --- .../kotlin/config/IncrementalCompilation.java | 11 +++++++++++ .../kotlin/compilerRunner/JpsKotlinCompilerRunner.kt | 6 +++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/compiler/util/src/org/jetbrains/kotlin/config/IncrementalCompilation.java b/compiler/util/src/org/jetbrains/kotlin/config/IncrementalCompilation.java index a248f8988a9..b84d6e670e8 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/IncrementalCompilation.java +++ b/compiler/util/src/org/jetbrains/kotlin/config/IncrementalCompilation.java @@ -18,6 +18,8 @@ package org.jetbrains.kotlin.config; import org.jetbrains.annotations.TestOnly; +import java.util.List; + public class IncrementalCompilation { private static final String INCREMENTAL_COMPILATION_PROPERTY = "kotlin.incremental.compilation"; private static final String INCREMENTAL_COMPILATION_JS_PROPERTY = "kotlin.incremental.compilation.js"; @@ -39,4 +41,13 @@ public class IncrementalCompilation { public static void setIsEnabledForJs(boolean value) { System.setProperty(INCREMENTAL_COMPILATION_JS_PROPERTY, String.valueOf(value)); } + + public static void toJvmArgs(List jvmArgs) { + if (isEnabled()) addJvmSystemFlag(jvmArgs, INCREMENTAL_COMPILATION_PROPERTY); + if (isEnabledForJs()) addJvmSystemFlag(jvmArgs, INCREMENTAL_COMPILATION_JS_PROPERTY); + } + + private static void addJvmSystemFlag(List jvmArgs, String name) { + jvmArgs.add("-D" + name + "=true"); + } } \ No newline at end of file diff --git a/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/JpsKotlinCompilerRunner.kt b/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/JpsKotlinCompilerRunner.kt index fbcb65c15ba..c9abea53125 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/JpsKotlinCompilerRunner.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/compilerRunner/JpsKotlinCompilerRunner.kt @@ -22,6 +22,7 @@ import org.jetbrains.kotlin.cli.common.ExitCode import org.jetbrains.kotlin.cli.common.KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY import org.jetbrains.kotlin.cli.common.arguments.* import org.jetbrains.kotlin.config.CompilerSettings +import org.jetbrains.kotlin.config.IncrementalCompilation import org.jetbrains.kotlin.config.additionalArgumentsAsList import org.jetbrains.kotlin.daemon.client.CompileServiceSession import org.jetbrains.kotlin.daemon.client.KotlinCompilerClient @@ -318,13 +319,16 @@ class JpsKotlinCompilerRunner : KotlinCompilerRunner() { val toolsJarPath = CompilerRunnerUtil.jdkToolsJar val compilerId = CompilerId.makeCompilerId(listOfNotNull(compilerPath, toolsJarPath)) val daemonOptions = configureDaemonOptions() + val additionalJvmParams = mutableListOf() + + IncrementalCompilation.toJvmArgs(additionalJvmParams) val clientFlagFile = KotlinCompilerClient.getOrCreateClientFlagFile(daemonOptions) val sessionFlagFile = makeAutodeletingFlagFile("compiler-jps-session-", File(daemonOptions.runFilesPathOrDefault)) environment.withProgressReporter { progress -> progress.progress("connecting to daemon") - newDaemonConnection(compilerId, clientFlagFile, sessionFlagFile, environment, daemonOptions) + newDaemonConnection(compilerId, clientFlagFile, sessionFlagFile, environment, daemonOptions, additionalJvmParams.toTypedArray()) } } }