private static void doCompile( @NotNull MessageCollector messageCollector, @NotNull OutputSink sink, @NotNull Module module, @NotNull CompilerEnvironment environment, VirtualFile[] files) { List<File> srcFiles = ContainerUtil.map( files, new Function<VirtualFile, File>() { @Override public File fun(VirtualFile file) { return new File(file.getPath()); } }); List<String> libraryFiles = getLibraryFiles(module); File outDir = environment.getOutput(); File outFile = new File(outDir, module.getName() + ".js"); OutputItemsCollectorImpl outputItemsCollector = new OutputItemsCollectorImpl(); Project project = module.getProject(); CommonCompilerArguments commonArguments = KotlinCommonCompilerArgumentsHolder.getInstance(project).getSettings(); K2JSCompilerArguments k2jsArguments = Kotlin2JsCompilerArgumentsHolder.getInstance(project).getSettings(); CompilerSettings compilerSettings = KotlinCompilerSettings.getInstance(project).getSettings(); KotlinCompilerRunner.runK2JsCompiler( commonArguments, k2jsArguments, compilerSettings, messageCollector, environment, outputItemsCollector, srcFiles, libraryFiles, outFile); TranslatingCompilerUtils.reportOutputs(sink, environment.getOutput(), outputItemsCollector); }
@Override public void compile( CompileContext context, Chunk<Module> moduleChunk, VirtualFile[] files, OutputSink sink) { if (files.length == 0) { return; } Module module = getModule(context, moduleChunk); if (module == null) { return; } MessageCollector messageCollector = new MessageCollectorAdapter(context); CompilerEnvironment environment = TranslatingCompilerUtils.getEnvironmentFor(context, module, /*tests = */ false); if (!environment.success()) { environment.reportErrorsTo(messageCollector); return; } doCompile(messageCollector, sink, module, environment, files); }