Source:
public static boolean compile(final CompilationContext context) { HaxeModuleSettingsBase settings = context.getModuleSettings(); if (settings.isExcludeFromCompilation()) { context.log(HaxeCommonBundle.message("module.0.is.excluded.from.compilation", context.getModuleName())); return true; } if (!verifyProjectSettings(context)) { return false; } final String workingPath = calculateWorkingPath(context); if (! workingPath.isEmpty()) { context.setErrorRoot(workingPath); } final File workingDirectory = new File(FileUtil.toSystemDependentName(workingPath)); if (!workingDirectory.exists()) { if (!workingDirectory.mkdirs()) { context.errorHandler(HaxeCommonBundle.message("output.path.not.found", workingPath)); return false; } } final List<List<String>> commandLines = generateCommandLines(context); final BooleanValueHolder hasErrors = new BooleanValueHolder(false); try { for (List<String> commandLine : commandLines) { String commandLineString = String.join(" ", commandLine); final BaseOSProcessHandler handler = new HaxeCompilerProcessHandler( context, HaxeSdkUtilBase.createProcessBuilder(commandLine, workingDirectory, context.getHaxeSdkData()).start(), commandLineString, Charset.defaultCharset() ); handler.addProcessListener(new ProcessAdapter() { @Override public void processTerminated(ProcessEvent event) { int exitcode = event.getExitCode(); hasErrors.setValue(exitcode != 0); if (exitcode < 0) { context.infoHandler(HaxeCommonBundle.message("negative.error.code.message")); } super.processTerminated(event); } }); handler.startNotify(); handler.waitFor(); } } catch (IOException e) { context.errorHandler(HaxeCommonBundle.message("process.threw.exception", e.getMessage())); hasErrors.setValue(true); return false; } return !hasErrors.getValue(); }

Target:
public static boolean compile(final CompilationContext context) { HaxeModuleSettingsBase settings = context.getModuleSettings(); if (settings.isExcludeFromCompilation()) { context.log(HaxeCommonBundle.message("module.0.is.excluded.from.compilation", context.getModuleName())); return true; } if (!verifyProjectSettings(context)) { return false; } final String workingPath = calculateWorkingPath(context); if (! workingPath.isEmpty()) { context.setErrorRoot(workingPath); } final File workingDirectory = new File(FileUtil.toSystemDependentName(workingPath)); if (!workingDirectory.exists()) { if (!workingDirectory.mkdirs()) { context.errorHandler(HaxeCommonBundle.message("output.path.not.found", workingPath)); return false; } } final List<List<String>> commandLines = generateCommandLines(context); final BooleanValueHolder hasErrors = new BooleanValueHolder(false); try { for (List<String> commandLine : commandLines) { String commandLineString = HaxeCommonBundle.message("compiler.command.line", String.join(" ", commandLine)); context.infoHandler(HaxeCommonBundle.message("compiler.working.path", workingPath)); context.infoHandler(HaxeCommonBundle.message("compiler.output.path", context.getCompileOutputPath())); context.infoHandler(HaxeCommonBundle.message("compiler.output.file", context.getOutputFileName())); ProcessBuilder process = HaxeSdkUtilBase.createProcessBuilder(commandLine, workingDirectory, context.getHaxeSdkData()); final BaseOSProcessHandler handler = new HaxeCompilerProcessHandler( context, process.start(), commandLineString, Charset.defaultCharset() ); handler.addProcessListener(new ProcessAdapter() { @Override public void processTerminated(ProcessEvent event) { int exitcode = event.getExitCode(); hasErrors.setValue(exitcode != 0); if (exitcode < 0) { context.infoHandler(HaxeCommonBundle.message("negative.error.code.message")); } super.processTerminated(event); } }); handler.startNotify(); handler.waitFor(); } } catch (IOException e) { context.errorHandler(HaxeCommonBundle.message("process.threw.exception", e.getMessage())); hasErrors.setValue(true); return false; } return !hasErrors.getValue(); }