Add checkbox for experimental incremental compilation; Make simple incremental compilation on by default
This commit is contained in:
+2
-2
@@ -24,8 +24,8 @@ public class KotlinBuildProcessParametersProvider(private val compilerWorkspaceS
|
|||||||
): BuildProcessParametersProvider() {
|
): BuildProcessParametersProvider() {
|
||||||
override fun getVMArguments(): MutableList<String> {
|
override fun getVMArguments(): MutableList<String> {
|
||||||
val res = arrayListOf<String>()
|
val res = arrayListOf<String>()
|
||||||
if (!compilerWorkspaceSettings.incrementalCompilationEnabled) {
|
if (compilerWorkspaceSettings.preciseIncrementalEnabled) {
|
||||||
res.add("-Dkotlin.incremental.compilation=false")
|
res.add("-Dkotlin.incremental.compilation.experimental=true")
|
||||||
}
|
}
|
||||||
if (compilerWorkspaceSettings.enableDaemon) {
|
if (compilerWorkspaceSettings.enableDaemon) {
|
||||||
res.add("-Dkotlin.daemon.enabled")
|
res.add("-Dkotlin.daemon.enabled")
|
||||||
|
|||||||
+2
-2
@@ -71,12 +71,12 @@
|
|||||||
</clientProperties>
|
</clientProperties>
|
||||||
<border type="etched" title-resource-bundle="org/jetbrains/kotlin/idea/KotlinBundle" title-key="kotlin.compiler.jvm.option.panel.title"/>
|
<border type="etched" title-resource-bundle="org/jetbrains/kotlin/idea/KotlinBundle" title-key="kotlin.compiler.jvm.option.panel.title"/>
|
||||||
<children>
|
<children>
|
||||||
<component id="c6928" class="javax.swing.JCheckBox" binding="incrementalCompilationCheckBox">
|
<component id="d8f92" class="javax.swing.JCheckBox" binding="enablePreciseIncrementalCheckBox">
|
||||||
<constraints>
|
<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"/>
|
<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>
|
</constraints>
|
||||||
<properties>
|
<properties>
|
||||||
<text value="Enable incremental compilation"/>
|
<text value="Enable precise incremental compilation (experimental)"/>
|
||||||
</properties>
|
</properties>
|
||||||
</component>
|
</component>
|
||||||
</children>
|
</children>
|
||||||
|
|||||||
+4
-4
@@ -54,11 +54,11 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
private TextFieldWithBrowseButton outputPostfixFile;
|
private TextFieldWithBrowseButton outputPostfixFile;
|
||||||
private JLabel labelForOutputPrefixFile;
|
private JLabel labelForOutputPrefixFile;
|
||||||
private JLabel labelForOutputPostfixFile;
|
private JLabel labelForOutputPostfixFile;
|
||||||
private JCheckBox incrementalCompilationCheckBox;
|
|
||||||
private JLabel labelForOutputDirectory;
|
private JLabel labelForOutputDirectory;
|
||||||
private JTextField outputDirectory;
|
private JTextField outputDirectory;
|
||||||
private JCheckBox copyRuntimeFilesCheckBox;
|
private JCheckBox copyRuntimeFilesCheckBox;
|
||||||
private JCheckBox keepAliveCheckBox;
|
private JCheckBox keepAliveCheckBox;
|
||||||
|
private JCheckBox enablePreciseIncrementalCheckBox;
|
||||||
|
|
||||||
public KotlinCompilerConfigurableTab(Project project) {
|
public KotlinCompilerConfigurableTab(Project project) {
|
||||||
this.commonCompilerArguments = KotlinCommonCompilerArgumentsHolder.getInstance(project).getSettings();
|
this.commonCompilerArguments = KotlinCommonCompilerArgumentsHolder.getInstance(project).getSettings();
|
||||||
@@ -108,7 +108,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
ComparingUtils.isModified(copyRuntimeFilesCheckBox, compilerSettings.getCopyJsLibraryFiles()) ||
|
ComparingUtils.isModified(copyRuntimeFilesCheckBox, compilerSettings.getCopyJsLibraryFiles()) ||
|
||||||
ComparingUtils.isModified(outputDirectory, compilerSettings.getOutputDirectoryForJsLibraryFiles()) ||
|
ComparingUtils.isModified(outputDirectory, compilerSettings.getOutputDirectoryForJsLibraryFiles()) ||
|
||||||
|
|
||||||
ComparingUtils.isModified(incrementalCompilationCheckBox, compilerWorkspaceSettings.getIncrementalCompilationEnabled()) ||
|
ComparingUtils.isModified(enablePreciseIncrementalCheckBox, compilerWorkspaceSettings.getPreciseIncrementalEnabled()) ||
|
||||||
ComparingUtils.isModified(keepAliveCheckBox, compilerWorkspaceSettings.getEnableDaemon()) ||
|
ComparingUtils.isModified(keepAliveCheckBox, compilerWorkspaceSettings.getEnableDaemon()) ||
|
||||||
|
|
||||||
ComparingUtils.isModified(generateSourceMapsCheckBox, k2jsCompilerArguments.sourceMap) ||
|
ComparingUtils.isModified(generateSourceMapsCheckBox, k2jsCompilerArguments.sourceMap) ||
|
||||||
@@ -123,7 +123,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
compilerSettings.setCopyJsLibraryFiles(copyRuntimeFilesCheckBox.isSelected());
|
compilerSettings.setCopyJsLibraryFiles(copyRuntimeFilesCheckBox.isSelected());
|
||||||
compilerSettings.setOutputDirectoryForJsLibraryFiles(outputDirectory.getText());
|
compilerSettings.setOutputDirectoryForJsLibraryFiles(outputDirectory.getText());
|
||||||
|
|
||||||
compilerWorkspaceSettings.setIncrementalCompilationEnabled(incrementalCompilationCheckBox.isSelected());
|
compilerWorkspaceSettings.setPreciseIncrementalEnabled(enablePreciseIncrementalCheckBox.isSelected());
|
||||||
|
|
||||||
boolean oldEnableDaemon = compilerWorkspaceSettings.getEnableDaemon();
|
boolean oldEnableDaemon = compilerWorkspaceSettings.getEnableDaemon();
|
||||||
compilerWorkspaceSettings.setEnableDaemon(keepAliveCheckBox.isSelected());
|
compilerWorkspaceSettings.setEnableDaemon(keepAliveCheckBox.isSelected());
|
||||||
@@ -143,7 +143,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co
|
|||||||
copyRuntimeFilesCheckBox.setSelected(compilerSettings.getCopyJsLibraryFiles());
|
copyRuntimeFilesCheckBox.setSelected(compilerSettings.getCopyJsLibraryFiles());
|
||||||
outputDirectory.setText(compilerSettings.getOutputDirectoryForJsLibraryFiles());
|
outputDirectory.setText(compilerSettings.getOutputDirectoryForJsLibraryFiles());
|
||||||
|
|
||||||
incrementalCompilationCheckBox.setSelected(compilerWorkspaceSettings.getIncrementalCompilationEnabled());
|
enablePreciseIncrementalCheckBox.setSelected(compilerWorkspaceSettings.getPreciseIncrementalEnabled());
|
||||||
keepAliveCheckBox.setSelected(compilerWorkspaceSettings.getEnableDaemon());
|
keepAliveCheckBox.setSelected(compilerWorkspaceSettings.getEnableDaemon());
|
||||||
|
|
||||||
generateSourceMapsCheckBox.setSelected(k2jsCompilerArguments.sourceMap);
|
generateSourceMapsCheckBox.setSelected(k2jsCompilerArguments.sourceMap);
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@ import com.intellij.util.xmlb.XmlSerializerUtil
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
public class KotlinCompilerWorkspaceSettings() : PersistentStateComponent<KotlinCompilerWorkspaceSettings> {
|
public class KotlinCompilerWorkspaceSettings() : PersistentStateComponent<KotlinCompilerWorkspaceSettings> {
|
||||||
public var incrementalCompilationEnabled: Boolean = true
|
public var preciseIncrementalEnabled: Boolean = false
|
||||||
public var enableDaemon: Boolean = true
|
public var enableDaemon: Boolean = true
|
||||||
|
|
||||||
override fun getState(): KotlinCompilerWorkspaceSettings {
|
override fun getState(): KotlinCompilerWorkspaceSettings {
|
||||||
|
|||||||
-4
@@ -50,10 +50,6 @@ public class CreateIncrementalCompilationBackup: AnAction("Create backup for deb
|
|||||||
val ZIP_FRACTION = 1.0 - PATCHES_FRACTION - LOGS_FRACTION - PROJECT_SYSTEM_FRACTION
|
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) {
|
override fun actionPerformed(e: AnActionEvent) {
|
||||||
val project = e.getProject()!!
|
val project = e.getProject()!!
|
||||||
val projectBaseDir = File(project.getBaseDir()!!.getPath())
|
val projectBaseDir = File(project.getBaseDir()!!.getPath())
|
||||||
|
|||||||
@@ -17,13 +17,10 @@
|
|||||||
package org.jetbrains.kotlin.idea.internal.makeBackup
|
package org.jetbrains.kotlin.idea.internal.makeBackup
|
||||||
|
|
||||||
import com.intellij.history.LocalHistory
|
import com.intellij.history.LocalHistory
|
||||||
import com.intellij.openapi.compiler.CompileTask
|
|
||||||
import com.intellij.openapi.compiler.CompileContext
|
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.util.Key
|
||||||
import com.intellij.openapi.project.Project
|
import java.util.*
|
||||||
import com.intellij.openapi.components.ServiceManager
|
|
||||||
import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerWorkspaceSettings
|
|
||||||
|
|
||||||
val random = Random()
|
val random = Random()
|
||||||
|
|
||||||
@@ -33,8 +30,6 @@ public class MakeBackupCompileTask: CompileTask {
|
|||||||
override fun execute(context: CompileContext?): Boolean {
|
override fun execute(context: CompileContext?): Boolean {
|
||||||
val project = context!!.getProject()!!
|
val project = context!!.getProject()!!
|
||||||
|
|
||||||
if (!incrementalCompilationEnabled(project)) return true
|
|
||||||
|
|
||||||
val localHistory = LocalHistory.getInstance()!!
|
val localHistory = LocalHistory.getInstance()!!
|
||||||
val label = HISTORY_LABEL_PREFIX + Integer.toHexString(random.nextInt())
|
val label = HISTORY_LABEL_PREFIX + Integer.toHexString(random.nextInt())
|
||||||
localHistory.putSystemLabel(project, label)
|
localHistory.putSystemLabel(project, label)
|
||||||
@@ -45,7 +40,3 @@ public class MakeBackupCompileTask: CompileTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun incrementalCompilationEnabled(project: Project): Boolean {
|
|
||||||
return ServiceManager.getService(project, javaClass<KotlinCompilerWorkspaceSettings>()).incrementalCompilationEnabled
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user