K2JSCompiler generates output file
This commit is contained in:
@@ -76,19 +76,20 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments, K2JSCompile
|
||||
}
|
||||
}, sources);
|
||||
if (analyzerWithCompilerReport.hasErrors()) {
|
||||
|
||||
return ExitCode.COMPILATION_ERROR;
|
||||
}
|
||||
|
||||
if (arguments.outputDir != null) {
|
||||
try {
|
||||
K2JSTranslator.translateWithCallToMainAndSaveToFile(environmentForJS.getSourceFiles(), arguments.outputDir, config, environmentForJS.getProject());
|
||||
K2JSTranslator.translateWithCallToMainAndSaveToFile(sources, arguments.outputDir, config, environmentForJS.getProject());
|
||||
}
|
||||
catch (Exception e) {
|
||||
messageCollector.report(CompilerMessageSeverity.ERROR, "Exception while translating:\n" + e.getMessage(),
|
||||
CompilerMessageLocation.NO_LOCATION);
|
||||
return ExitCode.INTERNAL_ERROR;
|
||||
}
|
||||
} else {
|
||||
messageCollector.report(CompilerMessageSeverity.ERROR, "Specify output directory via -output", CompilerMessageLocation.NO_LOCATION);
|
||||
messageCollector.report(CompilerMessageSeverity.ERROR, "Specify output file via -output", CompilerMessageLocation.NO_LOCATION);
|
||||
return ExitCode.INTERNAL_ERROR;
|
||||
}
|
||||
return ExitCode.OK;
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.intellij.util.Chunk;
|
||||
import jet.Function1;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.plugin.JetFileType;
|
||||
import org.jetbrains.jet.plugin.k2jsrun.K2JSRunnerUtils;
|
||||
import org.jetbrains.jet.plugin.project.JsModuleDetector;
|
||||
|
||||
import java.io.PrintStream;
|
||||
@@ -90,20 +91,21 @@ public final class K2JSCompiler implements TranslatingCompiler {
|
||||
-1);
|
||||
return -1;
|
||||
}
|
||||
String[] commandLineArgs = constructArguments(context.getModuleOutputDirectory(module), roots[0]);
|
||||
String[] commandLineArgs = constructArguments(context.getProject(), context.getModuleOutputDirectory(module), roots[0]);
|
||||
Object rc = invokeExecMethod(environment, out, context, commandLineArgs, "org.jetbrains.jet.cli.js.K2JSCompiler");
|
||||
return CompilerUtils.getReturnCodeFromObject(rc);
|
||||
}
|
||||
catch (Throwable e) {
|
||||
context.addMessage(CompilerMessageCategory.ERROR, "Exception while executing: " + e.getMessage(), null, -1, -1);
|
||||
context.addMessage(CompilerMessageCategory.ERROR, "Exception while executing compiler: " + e.getMessage(), null, -1, -1);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
private static String[] constructArguments(@NotNull VirtualFile outDir, @NotNull VirtualFile srcDir) {
|
||||
private static String[] constructArguments(@NotNull Project project, @NotNull VirtualFile outDir, @NotNull VirtualFile srcDir) {
|
||||
String srcPath = srcDir.getPath();
|
||||
String outPath = outDir.getPath();
|
||||
return new String[] {"-tags", "-verbose", "-version", "-srcdir", srcPath, "-output", outPath};
|
||||
String outFile = K2JSRunnerUtils.constructPathToGeneratedFile(project, outPath);
|
||||
return new String[] {"-tags", "-verbose", "-version", "-srcdir", srcPath, "-output", outFile};
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -70,7 +70,7 @@ public final class K2JSRunnerUtils {
|
||||
notifySuccess(outputDirPath);
|
||||
}
|
||||
|
||||
private static String constructPathToGeneratedFile(Project project, String outputDirPath) {
|
||||
public static String constructPathToGeneratedFile(@NotNull Project project, @NotNull String outputDirPath) {
|
||||
return outputDirPath + "/" + project.getName() + ".js";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user