public ProcessResult compile(string file, ArduinoBoard board, string additionals = "") { string cmd; string baseFile = Path.GetFileName(file); Dictionary <string, string> compileDict = new Dictionary <string, string>(); compileDict.Add("includes", " -I\"" + board.corePath + "\" " + " -I\"" + board.variantPath + "\"" + additionals);// + " -I\"" + avrLibcInc + "\""); compileDict.Add("source_file", file); compileDict.Add("object_file", buildPath + baseFile + ".o"); compileDict.Add("build.mcu", board.cpu); switch (Path.GetExtension(file)) { case ".c": cmd = ConfigParser.parseLine(board.getCompilerC(), compileDict); break; case ".cpp": string cpp = board.getCompilerCPP(); cmd = ConfigParser.parseLine(cpp, compileDict); break; case ".S": cmd = ConfigParser.parseLine(board.getCompilerS(), compileDict); break; default: cmd = ""; break; } return(runCmd(cmd)); }