Added support project settings to old kotlin2jvm compiler.
This commit is contained in:
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user