Added support project settings to old kotlin2jvm compiler.

This commit is contained in:
Zalim Bashorov
2013-10-16 15:57:44 +04:00
parent 4d68262b7f
commit fb8c9c2ef9
@@ -23,6 +23,7 @@ import com.intellij.openapi.compiler.CompilerMessageCategory;
import com.intellij.openapi.compiler.TranslatingCompiler; import com.intellij.openapi.compiler.TranslatingCompiler;
import com.intellij.openapi.compiler.ex.CompileContextEx; import com.intellij.openapi.compiler.ex.CompileContextEx;
import com.intellij.openapi.module.Module; import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.AnnotationOrderRootType; import com.intellij.openapi.roots.AnnotationOrderRootType;
import com.intellij.openapi.roots.OrderEnumerator; import com.intellij.openapi.roots.OrderEnumerator;
import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.io.FileUtil;
@@ -31,10 +32,13 @@ import com.intellij.util.Chunk;
import com.intellij.util.Function; import com.intellij.util.Function;
import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull; 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.arguments.K2JVMCompilerArguments;
import org.jetbrains.jet.cli.common.messages.MessageCollector; import org.jetbrains.jet.cli.common.messages.MessageCollector;
import org.jetbrains.jet.compiler.runner.*; import org.jetbrains.jet.compiler.runner.*;
import org.jetbrains.jet.plugin.JetFileType; import org.jetbrains.jet.plugin.JetFileType;
import org.jetbrains.jet.plugin.compiler.configuration.Kotlin2JvmCompilerSettings;
import org.jetbrains.jet.plugin.compiler.configuration.KotlinCommonCompilerSettings;
import org.jetbrains.jet.plugin.framework.KotlinFrameworkDetector; import org.jetbrains.jet.plugin.framework.KotlinFrameworkDetector;
import java.io.File; import java.io.File;
@@ -91,13 +95,14 @@ public class JetCompiler implements TranslatingCompiler {
doCompile(compileContext, moduleChunk, testFiles, module, outputSink, true); doCompile(compileContext, moduleChunk, testFiles, module, outputSink, true);
} }
private void doCompile( private static void doCompile(
final CompileContext compileContext, final CompileContext compileContext,
Chunk<Module> moduleChunk, Chunk<Module> moduleChunk,
List<VirtualFile> files, List<VirtualFile> files,
Module module, Module module,
OutputSink outputSink, OutputSink outputSink,
boolean tests) { boolean tests
) {
if (files.isEmpty()) return; if (files.isEmpty()) return;
MessageCollector messageCollector = new MessageCollectorAdapter(compileContext); MessageCollector messageCollector = new MessageCollectorAdapter(compileContext);
@@ -108,7 +113,7 @@ public class JetCompiler implements TranslatingCompiler {
return; return;
} }
final File outputDir = environment.getOutput(); File outputDir = environment.getOutput();
File scriptFile = tryToWriteScriptFile(compileContext, moduleChunk, files, module, tests, File scriptFile = tryToWriteScriptFile(compileContext, moduleChunk, files, module, tests,
compileContext.getModuleOutputDirectory(module), compileContext.getModuleOutputDirectory(module),
@@ -123,27 +128,22 @@ public class JetCompiler implements TranslatingCompiler {
compileContext.getProgressIndicator().setText("Emitting: " + outputFile); compileContext.getProgressIndicator().setText("Emitting: " + outputFile);
} }
}; };
runCompiler(messageCollector, environment, scriptFile, collector); runCompiler(module.getProject(), messageCollector, environment, scriptFile, collector);
TranslatingCompilerUtils.reportOutputs(outputSink, outputDir, collector); TranslatingCompilerUtils.reportOutputs(outputSink, outputDir, collector);
} }
private static void runCompiler( private static void runCompiler(
Project project,
MessageCollector messageCollector, MessageCollector messageCollector,
CompilerEnvironment environment, CompilerEnvironment environment,
File scriptFile, File scriptFile,
OutputItemsCollector outputItemsCollector OutputItemsCollector outputItemsCollector
) { ) {
K2JVMCompilerArguments commonArguments = new K2JVMCompilerArguments(); CommonCompilerArguments commonArguments = KotlinCommonCompilerSettings.getInstance(project).getSettings();
commonArguments.verbose = true; K2JVMCompilerArguments k2jvmArguments = Kotlin2JvmCompilerSettings.getInstance(project).getSettings();
commonArguments.tags = true;
commonArguments.printArgs = true;
commonArguments.version = true;
K2JVMCompilerArguments jvmArguments = new K2JVMCompilerArguments(); KotlinCompilerRunner.runK2JvmCompiler(commonArguments, k2jvmArguments, messageCollector, environment, scriptFile, outputItemsCollector);
jvmArguments.module = scriptFile.getAbsolutePath();
KotlinCompilerRunner.runK2JvmCompiler(commonArguments, jvmArguments, messageCollector, environment, scriptFile, outputItemsCollector);
} }
public static File tryToWriteScriptFile( public static File tryToWriteScriptFile(