Hi,
at present I work for mid-sized company for ticketing, parking and mobile solutions in Germany (and Great Britain). I personally work in a project for railway services (using gsm-r network). To understand the tools given below I want to figure out our target and environment in short. We develop for embedded Linux systems with ARM-CPU and Qt-Framework. Therefore C++ was and is used as programming language.
Apart from he usual tools like - make-alike build tools (written in perl - a project specific one) - regular make files for some special targets - SVN for source code management we use some interesting tools to keep the source readable and to preserve a minimum of source quality automatically (bear in mind we use C++ instead of C, for our purpose we need to alter some tools for our needs):
- Hudson for automatic build and checking the source (see below) - cpplint.py (by Google) for some checking the source - cppcheck for another check of the source - doxygen for checking the missing documentation (in that special case check only by tricky configuration instead of costly generating all documentation files) - format the source code (after agreement of all devs) in a uniform style with astyle before commit (for ReactOS better as commit hook) - finally we gather all check results in one table and mark the results for hudson as stable (if no errors), failed (in case of any errors), unstable (in case of some low-prio warnings)
Maybe we can think about some of them, because even if some problems of development remains, it might give us some edge and may also attract some devs. I don't make any suggestions, but I want to tell you how others work.
Matthias
PS: We are the first project in the company going that way and other project groups would like to adapt the way, because they see the benefit for their/other/future projects.