예제 #1
0
 private void processCompileResults(fileObj[] files, StandardCompileOutput <Project> output, outputEntry[] errors, outputEntry[] warnings)
 {
     for (int c = 0; c < errors.Length; c++)
     {
         ProjectFile file;
         int         line;
         resolveFile(errors[c], files, out file, out line);
         output.addError(
             file,
             line,
             errors[c].column,
             errors[c].message);
     }
     for (int c = 0; c < warnings.Length; c++)
     {
         ProjectFile file;
         int         line;
         resolveFile(warnings[c], files, out file, out line);
         output.addWarning(
             file,
             line,
             warnings[c].column,
             warnings[c].message);
     }
 }
예제 #2
0
    public ICompilerOutput <Solution> Compile(Solution solution, StandardOutputCallback standardOutput)
    {
        /*This is only temporary code until we have an actual build config system*/
        string finalOutput = solution.BuildDirectory + "\\disk.iso";

        if (File.Exists(finalOutput))
        {
            File.Delete(finalOutput);
        }
        string bootsect = "";
        StandardCompileOutput <Solution> output = new StandardCompileOutput <Solution>(finalOutput, solution);

        foreach (Project p in solution.Projects)
        {
            ICompilerOutput <Project> projOut = CompileProject(p, standardOutput);
            foreach (ICompileOutputEntry e in projOut.Errors)
            {
                output.addError(
                    e.File,
                    e.Line,
                    e.Column,
                    e.Message);
            }
            foreach (ICompileOutputEntry w in projOut.Warnings)
            {
                output.addWarning(
                    w.File,
                    w.Line,
                    w.Column,
                    w.Message);
            }

            if (projOut.Errors.Length != 0)
            {
                continue;
            }
            bootsect = projOut.OutputFile;
        }

        if (File.Exists(bootsect))
        {
            generateISO(
                "OS Test",
                bootsect,
                solution.BuildDirectory + "\\disk",
                finalOutput,
                standardOutput,
                new string[0]);
        }

        return(output);
    }
예제 #3
0
    private void link(string[] files, string outputFile, StandardCompileOutput <Project> output, StandardOutputCallback stdOut)
    {
        //perform the link
        outputEntry[] errors   = new outputEntry[0];
        outputEntry[] warnings = new outputEntry[0];
        link(ref errors, ref warnings, files, outputFile, stdOut);

        //add the errors and warnings to the output object
        for (int c = 0; c < errors.Length; c++)
        {
            output.addError(null, 0, 0, errors[c].message);
        }
        for (int c = 0; c < warnings.Length; c++)
        {
            output.addWarning(null, 0, 0, warnings[c].message);
        }
    }
예제 #4
0
    public ICompilerOutput<Solution> Compile(Solution solution, StandardOutputCallback standardOutput)
    {
        /*This is only temporary code until we have an actual build config system*/
        string finalOutput = solution.BuildDirectory + "\\disk.iso";
        if (File.Exists(finalOutput)) { File.Delete(finalOutput); }
        string bootsect = "";
        StandardCompileOutput<Solution> output = new StandardCompileOutput<Solution>(finalOutput, solution);

        foreach (Project p in solution.Projects) {
            ICompilerOutput<Project> projOut = CompileProject(p, standardOutput);
            foreach (ICompileOutputEntry e in projOut.Errors) {
                output.addError(
                    e.File,
                    e.Line,
                    e.Column,
                    e.Message);
            }
            foreach (ICompileOutputEntry w in projOut.Warnings) {
                output.addWarning(
                    w.File,
                    w.Line,
                    w.Column,
                    w.Message);
            }

            if (projOut.Errors.Length != 0) { continue; }
            bootsect = projOut.OutputFile;
        }

        if (File.Exists(bootsect)) {
            generateISO(
                "OS Test",
                bootsect,
                solution.BuildDirectory + "\\disk",
                finalOutput,
                standardOutput,
                new string[0]);
        }

        return output;
    }
예제 #5
0
 private void processCompileResults(fileObj[] files, StandardCompileOutput<Project> output, outputEntry[] errors, outputEntry[] warnings)
 {
     for (int c = 0; c < errors.Length; c++) {
         ProjectFile file;
         int line;
         resolveFile(errors[c], files, out file, out line);
         output.addError(
             file,
             line,
             errors[c].column,
             errors[c].message);
     }
     for (int c = 0; c < warnings.Length; c++) {
         ProjectFile file;
         int line;
         resolveFile(warnings[c], files, out file, out line);
         output.addWarning(
             file,
             line,
             warnings[c].column,
             warnings[c].message);
     }
 }
예제 #6
0
    private void link(string[] files, string outputFile, StandardCompileOutput<Project> output, StandardOutputCallback stdOut)
    {
        //perform the link
        outputEntry[] errors = new outputEntry[0];
        outputEntry[] warnings = new outputEntry[0];
        link(ref errors, ref warnings, files, outputFile, stdOut);

        //add the errors and warnings to the output object
        for (int c = 0; c < errors.Length; c++) {
            output.addError(null, 0, 0, errors[c].message);
        }
        for (int c = 0; c < warnings.Length; c++) {
            output.addWarning(null, 0, 0, warnings[c].message);
        }
    }