示例#1
0
        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));
        }