diff --git a/.idea/artifacts/KotlinPlugin.xml b/.idea/artifacts/KotlinPlugin.xml index d5517250f47..96244617efa 100644 --- a/.idea/artifacts/KotlinPlugin.xml +++ b/.idea/artifacts/KotlinPlugin.xml @@ -38,6 +38,7 @@ + diff --git a/ide-compiler-runner/src/org/jetbrains/jet/compiler/AdditionalCompilerSettings.java b/ide-compiler-runner/src/org/jetbrains/jet/compiler/AdditionalCompilerSettings.java new file mode 100644 index 00000000000..dcd2745926a --- /dev/null +++ b/ide-compiler-runner/src/org/jetbrains/jet/compiler/AdditionalCompilerSettings.java @@ -0,0 +1,36 @@ +/* + * Copyright 2010-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.compiler; + +import org.jetbrains.annotations.NotNull; + +public class AdditionalCompilerSettings { + private static final String DEFAULT_ADDITIONAL_ARGUMENTS = "-version -printArgs"; + + @NotNull + private String additionalArguments = DEFAULT_ADDITIONAL_ARGUMENTS; + + @NotNull + public String getAdditionalArguments() { + return additionalArguments; + } + + public void setAdditionalArguments(@NotNull String additionalArguments) { + this.additionalArguments = additionalArguments; + } + +} diff --git a/ide-compiler-runner/src/org/jetbrains/jet/compiler/SettingConstants.java b/ide-compiler-runner/src/org/jetbrains/jet/compiler/SettingConstants.java index 2e30058cdaa..b3ca7376a9e 100644 --- a/ide-compiler-runner/src/org/jetbrains/jet/compiler/SettingConstants.java +++ b/ide-compiler-runner/src/org/jetbrains/jet/compiler/SettingConstants.java @@ -24,6 +24,7 @@ public class SettingConstants { public static final String KOTLIN_COMMON_COMPILER_SETTINGS_SECTION = "KotlinCommonCompilerSettings"; public static final String KOTLIN_TO_JS_COMPILER_SETTINGS_SECTION = "Kotlin2JsCompilerSettings"; public static final String KOTLIN_TO_JVM_COMPILER_SETTINGS_SECTION = "Kotlin2JvmCompilerSettings"; + public static final String KOTLIN_ADDITIONAL_COMPILER_SETTINGS_SECTION = "KotlinAdditionalCompilerSettings"; public static final String KOTLIN_COMPILER_SETTINGS_FILE = "kotlinc.xml"; public static final String KOTLIN_COMPILER_SETTINGS_PATH = PROJECT_CONFIG_DIR + "/" + KOTLIN_COMPILER_SETTINGS_FILE; diff --git a/ide-compiler-runner/src/org/jetbrains/jet/compiler/runner/KotlinCompilerRunner.java b/ide-compiler-runner/src/org/jetbrains/jet/compiler/runner/KotlinCompilerRunner.java index e5e2e40b3ee..c6d6503f978 100644 --- a/ide-compiler-runner/src/org/jetbrains/jet/compiler/runner/KotlinCompilerRunner.java +++ b/ide-compiler-runner/src/org/jetbrains/jet/compiler/runner/KotlinCompilerRunner.java @@ -16,6 +16,7 @@ package org.jetbrains.jet.compiler.runner; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.ArrayUtil; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; @@ -29,6 +30,7 @@ import org.jetbrains.jet.cli.common.messages.CompilerMessageLocation; import org.jetbrains.jet.cli.common.messages.CompilerMessageSeverity; import org.jetbrains.jet.cli.common.messages.MessageCollector; import org.jetbrains.jet.cli.common.messages.MessageCollectorUtil; +import org.jetbrains.jet.compiler.AdditionalCompilerSettings; import java.io.File; import java.io.PrintStream; @@ -43,6 +45,7 @@ public class KotlinCompilerRunner { public static void runK2JvmCompiler( CommonCompilerArguments commonArguments, K2JVMCompilerArguments k2jvmArguments, + AdditionalCompilerSettings additionalSettings, MessageCollector messageCollector, CompilerEnvironment environment, File moduleFile, @@ -51,12 +54,14 @@ public class KotlinCompilerRunner { K2JVMCompilerArguments arguments = mergeBeans(commonArguments, k2jvmArguments); setupK2JvmSettings(moduleFile, arguments); - runCompiler(K2JVM_COMPILER, arguments, DEFAULT_K2JVM_ARGUMENTS, messageCollector, collector, environment); + runCompiler(K2JVM_COMPILER, arguments, additionalSettings.getAdditionalArguments(), + DEFAULT_K2JVM_ARGUMENTS, messageCollector, collector, environment); } public static void runK2JsCompiler( CommonCompilerArguments commonArguments, K2JSCompilerArguments k2jsArguments, + AdditionalCompilerSettings additionalSettings, MessageCollector messageCollector, CompilerEnvironment environment, OutputItemsCollector collector, @@ -67,18 +72,21 @@ public class KotlinCompilerRunner { K2JSCompilerArguments arguments = mergeBeans(commonArguments, k2jsArguments); setupK2JsSettings(outputFile, sourceFiles, libraryFiles, arguments); - runCompiler(K2JS_COMPILER, arguments, DEFAULT_K2JS_ARGUMENTS, messageCollector, collector, environment); + runCompiler(K2JS_COMPILER, arguments, additionalSettings.getAdditionalArguments(), + DEFAULT_K2JS_ARGUMENTS, messageCollector, collector, environment); } private static void runCompiler( final String compilerClassName, CommonCompilerArguments arguments, + String additionalArguments, CommonCompilerArguments defaultArguments, final MessageCollector messageCollector, OutputItemsCollector collector, final CompilerEnvironment environment ) { final List argumentsList = ArgumentUtils.convertArgumentsToStringList(arguments, defaultArguments); + argumentsList.addAll(StringUtil.split(additionalArguments, " ")); CompilerRunnerUtil.outputCompilerMessagesAndHandleExitCode(messageCollector, collector, new Function() { @Override @@ -125,8 +133,6 @@ public class KotlinCompilerRunner { private static void setupCommonSettings(CommonCompilerArguments settings) { settings.tags = true; settings.verbose = true; - settings.version = true; - settings.printArgs = true; } private static void setupK2JvmSettings( diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index 26460c45679..c92c1bd07bb 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -128,6 +128,9 @@ + + diff --git a/idea/src/org/jetbrains/jet/plugin/compiler/JetCompiler.java b/idea/src/org/jetbrains/jet/plugin/compiler/JetCompiler.java index d0d26e6acf3..266bafeb303 100644 --- a/idea/src/org/jetbrains/jet/plugin/compiler/JetCompiler.java +++ b/idea/src/org/jetbrains/jet/plugin/compiler/JetCompiler.java @@ -35,9 +35,11 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.cli.common.arguments.CommonCompilerArguments; import org.jetbrains.jet.cli.common.arguments.K2JVMCompilerArguments; import org.jetbrains.jet.cli.common.messages.MessageCollector; +import org.jetbrains.jet.compiler.AdditionalCompilerSettings; import org.jetbrains.jet.compiler.runner.*; import org.jetbrains.jet.plugin.JetFileType; import org.jetbrains.jet.plugin.compiler.configuration.Kotlin2JvmCompilerSettings; +import org.jetbrains.jet.plugin.compiler.configuration.KotlinAdditionalCompilerSettings; import org.jetbrains.jet.plugin.compiler.configuration.KotlinCommonCompilerSettings; import org.jetbrains.jet.plugin.framework.KotlinFrameworkDetector; @@ -142,8 +144,10 @@ public class JetCompiler implements TranslatingCompiler { ) { CommonCompilerArguments commonArguments = KotlinCommonCompilerSettings.getInstance(project).getSettings(); K2JVMCompilerArguments k2jvmArguments = Kotlin2JvmCompilerSettings.getInstance(project).getSettings(); + AdditionalCompilerSettings additionalSettings = KotlinAdditionalCompilerSettings.getInstance(project).getSettings(); - KotlinCompilerRunner.runK2JvmCompiler(commonArguments, k2jvmArguments, messageCollector, environment, scriptFile, outputItemsCollector); + KotlinCompilerRunner.runK2JvmCompiler(commonArguments, k2jvmArguments, additionalSettings, + messageCollector, environment, scriptFile, outputItemsCollector); } public static File tryToWriteScriptFile( diff --git a/idea/src/org/jetbrains/jet/plugin/compiler/K2JSCompiler.java b/idea/src/org/jetbrains/jet/plugin/compiler/K2JSCompiler.java index d8d8af9186c..040d2c43cab 100644 --- a/idea/src/org/jetbrains/jet/plugin/compiler/K2JSCompiler.java +++ b/idea/src/org/jetbrains/jet/plugin/compiler/K2JSCompiler.java @@ -19,6 +19,7 @@ package org.jetbrains.jet.plugin.compiler; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.compiler.*; import com.intellij.openapi.module.Module; +import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModuleOrderEntry; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.OrderEntry; @@ -33,11 +34,13 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.cli.common.arguments.CommonCompilerArguments; import org.jetbrains.jet.cli.common.arguments.K2JSCompilerArguments; import org.jetbrains.jet.cli.common.messages.MessageCollector; +import org.jetbrains.jet.compiler.AdditionalCompilerSettings; import org.jetbrains.jet.compiler.runner.CompilerEnvironment; import org.jetbrains.jet.compiler.runner.KotlinCompilerRunner; import org.jetbrains.jet.compiler.runner.OutputItemsCollectorImpl; import org.jetbrains.jet.plugin.JetFileType; import org.jetbrains.jet.plugin.compiler.configuration.Kotlin2JsCompilerSettings; +import org.jetbrains.jet.plugin.compiler.configuration.KotlinAdditionalCompilerSettings; import org.jetbrains.jet.plugin.compiler.configuration.KotlinCommonCompilerSettings; import org.jetbrains.jet.plugin.framework.KotlinFrameworkDetector; @@ -97,10 +100,12 @@ public final class K2JSCompiler implements TranslatingCompiler { OutputItemsCollectorImpl outputItemsCollector = new OutputItemsCollectorImpl(); - CommonCompilerArguments commonArguments = KotlinCommonCompilerSettings.getInstance(module.getProject()).getSettings(); - K2JSCompilerArguments k2jsArguments = Kotlin2JsCompilerSettings.getInstance(module.getProject()).getSettings(); + Project project = module.getProject(); + CommonCompilerArguments commonArguments = KotlinCommonCompilerSettings.getInstance(project).getSettings(); + K2JSCompilerArguments k2jsArguments = Kotlin2JsCompilerSettings.getInstance(project).getSettings(); + AdditionalCompilerSettings additionalSettings = KotlinAdditionalCompilerSettings.getInstance(project).getSettings(); - KotlinCompilerRunner.runK2JsCompiler(commonArguments, k2jsArguments, messageCollector, environment, + KotlinCompilerRunner.runK2JsCompiler(commonArguments, k2jsArguments, additionalSettings, messageCollector, environment, outputItemsCollector, srcFiles, libraryFiles, outFile); if (!ApplicationManager.getApplication().isUnitTestMode()) { diff --git a/idea/src/org/jetbrains/jet/plugin/compiler/configuration/BaseKotlinCompilerSettings.java b/idea/src/org/jetbrains/jet/plugin/compiler/configuration/BaseKotlinCompilerSettings.java index 87ae0a0cc05..5c11db9681c 100644 --- a/idea/src/org/jetbrains/jet/plugin/compiler/configuration/BaseKotlinCompilerSettings.java +++ b/idea/src/org/jetbrains/jet/plugin/compiler/configuration/BaseKotlinCompilerSettings.java @@ -22,9 +22,8 @@ import com.intellij.util.xmlb.XmlSerializer; import org.jdom.Element; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.cli.common.arguments.CommonCompilerArguments; -public abstract class BaseKotlinCompilerSettings implements PersistentStateComponent { +public abstract class BaseKotlinCompilerSettings implements PersistentStateComponent { private static final SkipDefaultValuesSerializationFilters SKIP_DEFAULT_VALUES = new SkipDefaultValuesSerializationFilters(); diff --git a/idea/src/org/jetbrains/jet/plugin/compiler/configuration/KotlinAdditionalCompilerSettings.java b/idea/src/org/jetbrains/jet/plugin/compiler/configuration/KotlinAdditionalCompilerSettings.java new file mode 100644 index 00000000000..0b4321b1b39 --- /dev/null +++ b/idea/src/org/jetbrains/jet/plugin/compiler/configuration/KotlinAdditionalCompilerSettings.java @@ -0,0 +1,45 @@ +/* + * Copyright 2010-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.plugin.compiler.configuration; + +import com.intellij.openapi.components.*; +import com.intellij.openapi.project.Project; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.compiler.AdditionalCompilerSettings; + +import static org.jetbrains.jet.compiler.SettingConstants.KOTLIN_ADDITIONAL_COMPILER_SETTINGS_SECTION; +import static org.jetbrains.jet.compiler.SettingConstants.KOTLIN_COMPILER_SETTINGS_PATH; + +@State( + name = KOTLIN_ADDITIONAL_COMPILER_SETTINGS_SECTION, + storages = { + @Storage(file = StoragePathMacros.PROJECT_FILE), + @Storage(file = KOTLIN_COMPILER_SETTINGS_PATH, scheme = StorageScheme.DIRECTORY_BASED) + } +) +public class KotlinAdditionalCompilerSettings extends BaseKotlinCompilerSettings { + + @NotNull + @Override + protected AdditionalCompilerSettings createSettings() { + return new AdditionalCompilerSettings(); + } + + public static KotlinAdditionalCompilerSettings getInstance(Project project) { + return ServiceManager.getService(project, KotlinAdditionalCompilerSettings.class); + } +} diff --git a/idea/src/org/jetbrains/jet/plugin/compiler/configuration/KotlinCompilerConfigurableTab.form b/idea/src/org/jetbrains/jet/plugin/compiler/configuration/KotlinCompilerConfigurableTab.form index dc467bd9cf2..86b46436728 100644 --- a/idea/src/org/jetbrains/jet/plugin/compiler/configuration/KotlinCompilerConfigurableTab.form +++ b/idea/src/org/jetbrains/jet/plugin/compiler/configuration/KotlinCompilerConfigurableTab.form @@ -1,27 +1,53 @@
- + - + - + - + + - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/idea/src/org/jetbrains/jet/plugin/compiler/configuration/KotlinCompilerConfigurableTab.java b/idea/src/org/jetbrains/jet/plugin/compiler/configuration/KotlinCompilerConfigurableTab.java index 7a4edc4f11b..8ad4196acb3 100644 --- a/idea/src/org/jetbrains/jet/plugin/compiler/configuration/KotlinCompilerConfigurableTab.java +++ b/idea/src/org/jetbrains/jet/plugin/compiler/configuration/KotlinCompilerConfigurableTab.java @@ -21,10 +21,12 @@ import com.intellij.openapi.options.Configurable; import com.intellij.openapi.options.ConfigurableEP; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.SearchableConfigurable; +import com.intellij.ui.RawCommandLineEditor; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.cli.common.arguments.CommonCompilerArguments; +import org.jetbrains.jet.compiler.AdditionalCompilerSettings; import javax.swing.*; @@ -32,13 +34,20 @@ import static org.jetbrains.jet.cli.common.arguments.CommonArgumentConstants.SUP public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Configurable.NoScroll{ private final CommonCompilerArguments commonCompilerSettings; + private final AdditionalCompilerSettings additionalCompilerSettings; private final ConfigurableEP extPoint; private JPanel contentPane; private JCheckBox generateNoWarningsCheckBox; + private RawCommandLineEditor additionalArgsOptionsField; + private JLabel additionalArgsLabel; public KotlinCompilerConfigurableTab(ConfigurableEP ep) { this.extPoint = ep; this.commonCompilerSettings = KotlinCommonCompilerSettings.getInstance(ep.getProject()).getSettings(); + this.additionalCompilerSettings = KotlinAdditionalCompilerSettings.getInstance(ep.getProject()).getSettings(); + + additionalArgsOptionsField.attachLabel(additionalArgsLabel); + additionalArgsOptionsField.setDialogCaption(null); } @NotNull @@ -61,17 +70,20 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co @Override public boolean isModified() { - return ComparingUtils.isModified(generateNoWarningsCheckBox, isGenerateNoWarnings()); + return ComparingUtils.isModified(generateNoWarningsCheckBox, isGenerateNoWarnings()) || + ComparingUtils.isModified(additionalArgsOptionsField, additionalCompilerSettings.getAdditionalArguments()); } @Override public void apply() throws ConfigurationException { setGenerateNoWarnings(generateNoWarningsCheckBox.isSelected()); + additionalCompilerSettings.setAdditionalArguments(additionalArgsOptionsField.getText()); } @Override public void reset() { generateNoWarningsCheckBox.setSelected(isGenerateNoWarnings()); + additionalArgsOptionsField.setText(additionalCompilerSettings.getAdditionalArguments()); } @Override @@ -95,6 +107,6 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co } private void setGenerateNoWarnings(boolean selected) { - commonCompilerSettings.suppress = selected ? SUPPRESS_WARNINGS : ""; + commonCompilerSettings.suppress = selected ? SUPPRESS_WARNINGS : null; } } diff --git a/jps-plugin/src/org/jetbrains/jet/jps/JpsKotlinCompilerSettings.java b/jps-plugin/src/org/jetbrains/jet/jps/JpsKotlinCompilerSettings.java index 29cbeb5a775..908e237c3a6 100644 --- a/jps-plugin/src/org/jetbrains/jet/jps/JpsKotlinCompilerSettings.java +++ b/jps-plugin/src/org/jetbrains/jet/jps/JpsKotlinCompilerSettings.java @@ -20,6 +20,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.cli.common.arguments.CommonCompilerArguments; import org.jetbrains.jet.cli.common.arguments.K2JSCompilerArguments; import org.jetbrains.jet.cli.common.arguments.K2JVMCompilerArguments; +import org.jetbrains.jet.compiler.AdditionalCompilerSettings; import org.jetbrains.jps.model.JpsElementChildRole; import org.jetbrains.jps.model.JpsProject; import org.jetbrains.jps.model.ex.JpsElementBase; @@ -34,6 +35,8 @@ public class JpsKotlinCompilerSettings extends JpsElementBase 1) { @@ -141,7 +143,8 @@ public class KotlinBuilder extends ModuleLevelBuilder { List libraryFiles = JpsJsModuleUtils.getLibraryFilesAndDependencies(representativeTarget); K2JSCompilerArguments k2JsSettings = JpsKotlinCompilerSettings.getK2JsSettings(project); - runK2JsCompiler(commonSettings, k2JsSettings, messageCollector, environment, outputItemCollector, sourceFiles, libraryFiles, outputFile); + runK2JsCompiler(commonSettings, k2JsSettings, additionalSettings, messageCollector, environment, + outputItemCollector, sourceFiles, libraryFiles, outputFile); } else { if (chunk.getModules().size() > 1) { @@ -160,7 +163,8 @@ public class KotlinBuilder extends ModuleLevelBuilder { K2JVMCompilerArguments k2JvmSettings = JpsKotlinCompilerSettings.getK2JvmSettings(project); - runK2JvmCompiler(commonSettings, k2JvmSettings, messageCollector, environment, moduleFile, outputItemCollector); + runK2JvmCompiler(commonSettings, k2JvmSettings, additionalSettings, messageCollector, environment, + moduleFile, outputItemCollector); } // If there's only one target, this map is empty: get() always returns null, and the representativeTarget will be used below diff --git a/jps-plugin/src/org/jetbrains/jet/jps/model/KotlinAdditionalCompilerSettingsSerializer.java b/jps-plugin/src/org/jetbrains/jet/jps/model/KotlinAdditionalCompilerSettingsSerializer.java new file mode 100644 index 00000000000..ccb86bae311 --- /dev/null +++ b/jps-plugin/src/org/jetbrains/jet/jps/model/KotlinAdditionalCompilerSettingsSerializer.java @@ -0,0 +1,48 @@ +/* + * Copyright 2010-2013 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.jps.model; + +import com.intellij.util.xmlb.XmlSerializer; +import org.jdom.Element; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.compiler.AdditionalCompilerSettings; +import org.jetbrains.jet.jps.JpsKotlinCompilerSettings; +import org.jetbrains.jps.model.JpsProject; +import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer; + +import static org.jetbrains.jet.compiler.SettingConstants.KOTLIN_ADDITIONAL_COMPILER_SETTINGS_SECTION; +import static org.jetbrains.jet.compiler.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE; + +class KotlinAdditionalCompilerSettingsSerializer extends JpsProjectExtensionSerializer { + KotlinAdditionalCompilerSettingsSerializer() { + super(KOTLIN_COMPILER_SETTINGS_FILE, KOTLIN_ADDITIONAL_COMPILER_SETTINGS_SECTION); + } + + @Override + public void loadExtension(@NotNull JpsProject project, @NotNull Element componentTag) { + AdditionalCompilerSettings settings = XmlSerializer.deserialize(componentTag, AdditionalCompilerSettings.class); + if (settings == null) { + settings = new AdditionalCompilerSettings(); + } + + JpsKotlinCompilerSettings.setAdditionalSettings(project, settings); + } + + @Override + public void saveExtension(@NotNull JpsProject project, @NotNull Element componentTag) { + } +} diff --git a/jps-plugin/src/org/jetbrains/jet/jps/model/KotlinModelSerializerService.java b/jps-plugin/src/org/jetbrains/jet/jps/model/KotlinModelSerializerService.java index 7ce881cc715..e7885d2f643 100644 --- a/jps-plugin/src/org/jetbrains/jet/jps/model/KotlinModelSerializerService.java +++ b/jps-plugin/src/org/jetbrains/jet/jps/model/KotlinModelSerializerService.java @@ -29,6 +29,7 @@ public class KotlinModelSerializerService extends JpsModelSerializerExtension { public List getProjectExtensionSerializers() { return Arrays.asList(new KotlinCommonCompilerSettingsSerializer(), new Kotlin2JvmCompilerSettingsSerializer(), - new Kotlin2JsCompilerSettingsSerializer()); + new Kotlin2JsCompilerSettingsSerializer(), + new KotlinAdditionalCompilerSettingsSerializer()); } }