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.ex.CompileContextEx;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.AnnotationOrderRootType;
import com.intellij.openapi.roots.OrderEnumerator;
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.containers.ContainerUtil;
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.runner.*;
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 java.io.File;
@@ -91,13 +95,14 @@ public class JetCompiler implements TranslatingCompiler {
doCompile(compileContext, moduleChunk, testFiles, module, outputSink, true);
}
private void doCompile(
private static void doCompile(
final CompileContext compileContext,
Chunk<Module> moduleChunk,
List<VirtualFile> files,
Module module,
OutputSink outputSink,
boolean tests) {
boolean tests
) {
if (files.isEmpty()) return;
MessageCollector messageCollector = new MessageCollectorAdapter(compileContext);
@@ -108,7 +113,7 @@ public class JetCompiler implements TranslatingCompiler {
return;
}
final File outputDir = environment.getOutput();
File outputDir = environment.getOutput();
File scriptFile = tryToWriteScriptFile(compileContext, moduleChunk, files, module, tests,
compileContext.getModuleOutputDirectory(module),
@@ -123,27 +128,22 @@ public class JetCompiler implements TranslatingCompiler {
compileContext.getProgressIndicator().setText("Emitting: " + outputFile);
}
};
runCompiler(messageCollector, environment, scriptFile, collector);
runCompiler(module.getProject(), messageCollector, environment, scriptFile, collector);
TranslatingCompilerUtils.reportOutputs(outputSink, outputDir, collector);
}
private static void runCompiler(
Project project,
MessageCollector messageCollector,
CompilerEnvironment environment,
File scriptFile,
OutputItemsCollector outputItemsCollector
) {
K2JVMCompilerArguments commonArguments = new K2JVMCompilerArguments();
commonArguments.verbose = true;
commonArguments.tags = true;
commonArguments.printArgs = true;
commonArguments.version = true;
CommonCompilerArguments commonArguments = KotlinCommonCompilerSettings.getInstance(project).getSettings();
K2JVMCompilerArguments k2jvmArguments = Kotlin2JvmCompilerSettings.getInstance(project).getSettings();
K2JVMCompilerArguments jvmArguments = new K2JVMCompilerArguments();
jvmArguments.module = scriptFile.getAbsolutePath();
KotlinCompilerRunner.runK2JvmCompiler(commonArguments, jvmArguments, messageCollector, environment, scriptFile, outputItemsCollector);
KotlinCompilerRunner.runK2JvmCompiler(commonArguments, k2jvmArguments, messageCollector, environment, scriptFile, outputItemsCollector);
}
public static File tryToWriteScriptFile(