public override bool Compile(string file) { var file_name = file.Split('.')[0]; // Compile string cl_args = ""; Options.ForEach((str) => cl_args += $" {str}"); IncludePath.ForEach((str) => cl_args += $" /I\"{str}\""); cl_args += $" /c {file} /Fo{file_name}.obj"; var cl = MakeProcess(ToolchainPath[0] + "\\cl.exe", cl_args); ReadCompileResult(cl); if (ExitCode != 0) { return(false); } // Link string link_args = " " + Options[0]; LibraryPath.ForEach((str) => link_args += $" /LIBPATH:\"{str}\""); link_args += $" /out:{file_name}.exe {file_name}.obj"; var link = MakeProcess(ToolchainPath[0] + "\\link.exe", link_args); ReadCompileResult(link); if (ExitCode != 0) { return(false); } return(true); }