Add checkbox for experimental incremental compilation; Make simple incremental compilation on by default

This commit is contained in:
Alexey Tsvetkov
2015-12-15 17:32:01 +03:00
parent 0ba0ea5e1f
commit 5330248f6e
6 changed files with 11 additions and 24 deletions
@@ -24,8 +24,8 @@ public class KotlinBuildProcessParametersProvider(private val compilerWorkspaceS
): BuildProcessParametersProvider() {
override fun getVMArguments(): MutableList<String> {
val res = arrayListOf<String>()
if (!compilerWorkspaceSettings.incrementalCompilationEnabled) {
res.add("-Dkotlin.incremental.compilation=false")
if (compilerWorkspaceSettings.preciseIncrementalEnabled) {
res.add("-Dkotlin.incremental.compilation.experimental=true")
}
if (compilerWorkspaceSettings.enableDaemon) {
res.add("-Dkotlin.daemon.enabled")
@@ -71,12 +71,12 @@
</clientProperties>
<border type="etched" title-resource-bundle="org/jetbrains/kotlin/idea/KotlinBundle" title-key="kotlin.compiler.jvm.option.panel.title"/>
<children>
<component id="c6928" class="javax.swing.JCheckBox" binding="incrementalCompilationCheckBox">
<component id="d8f92" class="javax.swing.JCheckBox" binding="enablePreciseIncrementalCheckBox">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Enable incremental compilation"/>
<text value="Enable precise incremental compilation (experimental)"/>
</properties>
</component>
</children>
@@ -54,11 +54,11 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
private TextFieldWithBrowseButton outputPostfixFile;
private JLabel labelForOutputPrefixFile;
private JLabel labelForOutputPostfixFile;
private JCheckBox incrementalCompilationCheckBox;
private JLabel labelForOutputDirectory;
private JTextField outputDirectory;
private JCheckBox copyRuntimeFilesCheckBox;
private JCheckBox keepAliveCheckBox;
private JCheckBox enablePreciseIncrementalCheckBox;
public KotlinCompilerConfigurableTab(Project project) {
this.commonCompilerArguments = KotlinCommonCompilerArgumentsHolder.getInstance(project).getSettings();
@@ -108,7 +108,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
ComparingUtils.isModified(copyRuntimeFilesCheckBox, compilerSettings.getCopyJsLibraryFiles()) ||
ComparingUtils.isModified(outputDirectory, compilerSettings.getOutputDirectoryForJsLibraryFiles()) ||
ComparingUtils.isModified(incrementalCompilationCheckBox, compilerWorkspaceSettings.getIncrementalCompilationEnabled()) ||
ComparingUtils.isModified(enablePreciseIncrementalCheckBox, compilerWorkspaceSettings.getPreciseIncrementalEnabled()) ||
ComparingUtils.isModified(keepAliveCheckBox, compilerWorkspaceSettings.getEnableDaemon()) ||
ComparingUtils.isModified(generateSourceMapsCheckBox, k2jsCompilerArguments.sourceMap) ||
@@ -123,7 +123,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
compilerSettings.setCopyJsLibraryFiles(copyRuntimeFilesCheckBox.isSelected());
compilerSettings.setOutputDirectoryForJsLibraryFiles(outputDirectory.getText());
compilerWorkspaceSettings.setIncrementalCompilationEnabled(incrementalCompilationCheckBox.isSelected());
compilerWorkspaceSettings.setPreciseIncrementalEnabled(enablePreciseIncrementalCheckBox.isSelected());
boolean oldEnableDaemon = compilerWorkspaceSettings.getEnableDaemon();
compilerWorkspaceSettings.setEnableDaemon(keepAliveCheckBox.isSelected());
@@ -143,7 +143,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
copyRuntimeFilesCheckBox.setSelected(compilerSettings.getCopyJsLibraryFiles());
outputDirectory.setText(compilerSettings.getOutputDirectoryForJsLibraryFiles());
incrementalCompilationCheckBox.setSelected(compilerWorkspaceSettings.getIncrementalCompilationEnabled());
enablePreciseIncrementalCheckBox.setSelected(compilerWorkspaceSettings.getPreciseIncrementalEnabled());
keepAliveCheckBox.setSelected(compilerWorkspaceSettings.getEnableDaemon());
generateSourceMapsCheckBox.setSelected(k2jsCompilerArguments.sourceMap);
@@ -29,7 +29,7 @@ import com.intellij.util.xmlb.XmlSerializerUtil
)
)
public class KotlinCompilerWorkspaceSettings() : PersistentStateComponent<KotlinCompilerWorkspaceSettings> {
public var incrementalCompilationEnabled: Boolean = true
public var preciseIncrementalEnabled: Boolean = false
public var enableDaemon: Boolean = true
override fun getState(): KotlinCompilerWorkspaceSettings {
@@ -50,10 +50,6 @@ public class CreateIncrementalCompilationBackup: AnAction("Create backup for deb
val ZIP_FRACTION = 1.0 - PATCHES_FRACTION - LOGS_FRACTION - PROJECT_SYSTEM_FRACTION
}
override fun update(e: AnActionEvent) {
e.presentation.isVisible = e.project?.let { incrementalCompilationEnabled(it) } ?: false
}
override fun actionPerformed(e: AnActionEvent) {
val project = e.getProject()!!
val projectBaseDir = File(project.getBaseDir()!!.getPath())
@@ -17,13 +17,10 @@
package org.jetbrains.kotlin.idea.internal.makeBackup
import com.intellij.history.LocalHistory
import com.intellij.openapi.compiler.CompileTask
import com.intellij.openapi.compiler.CompileContext
import java.util.Random
import com.intellij.openapi.compiler.CompileTask
import com.intellij.openapi.util.Key
import com.intellij.openapi.project.Project
import com.intellij.openapi.components.ServiceManager
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerWorkspaceSettings
import java.util.*
val random = Random()
@@ -33,8 +30,6 @@ public class MakeBackupCompileTask: CompileTask {
override fun execute(context: CompileContext?): Boolean {
val project = context!!.getProject()!!
if (!incrementalCompilationEnabled(project)) return true
val localHistory = LocalHistory.getInstance()!!
val label = HISTORY_LABEL_PREFIX + Integer.toHexString(random.nextInt())
localHistory.putSystemLabel(project, label)
@@ -45,7 +40,3 @@ public class MakeBackupCompileTask: CompileTask {
}
}
fun incrementalCompilationEnabled(project: Project): Boolean {
return ServiceManager.getService(project, javaClass<KotlinCompilerWorkspaceSettings>()).incrementalCompilationEnabled
}