Also, errors emitted by make itself (for example, "no way to make target X needed by Y") are not seen as errors. Other tools used in custom builds, like yacc, can also produce different kinds of errors. So we might want to generalize the current regex settings, which support only compiler errors and warnings.
Perhaps a table with these columns: Tool, Status, Regexp, FileGrp, LineGrp. The meaning of each of these columns is:
- Tool: type in the name of the tool that gives the error/warning to be recognized by the following regexp (gcc, ld, make, yacc,...)
- Status: choose from Error or Warning radio buttons (maybe Note too -- I've seen some gcc messages with this. Would need a 3rd color)
- Regexp: type in the regexp in this column, with groups for catching filename and line number (if any)
- FileGrp: type the number of which group in the Regexp that matches the filename (leave blank if none)
- LineGrp: type the number of which group in the Regexp that matches the line number (leave blank if none)
With a table, the user can enter as many entries as needed to cover the tools used by the project. Also, some tools emit different kinds of error messages. It is hard to write a single regexp to match them all. With a table, you can split them into multiple entries, with a simpler regexp for each.
Currently in the Build Tab we are just checking two regexps. This could be changed to iterate over the table and try each regexp entry. The output could highlight the tool's name in the error line by bolding it too.