Note that there are some explanatory texts on larger screens.

plurals
  1. POBuild system for an embedded C/C++ project
    text
    copied!<p>I am looking for a high-level build system/tool that can help organise my embedded C project into "modules" and "components". Note that these two terms are highly subjective so my definitions are given below.</p> <ul> <li>A module is a cohesive collection of c and h files but with only one public h file that is visible to other modules.</li> <li>A component (or a layer) on the other hand is a collection of modules (e.g. Application layer, Library layer, Driver layer, RTOS layer etc.). </li> </ul> <p>The build system/tool should -</p> <ul> <li>Prevent cyclic dependencies between components and modules (cyclic dependencies inside modules is okay)</li> <li>prevent access to private barriers of a module. If other modules try to include a header file that is private to a module, the build system must throw an error. However, files within a private barrier must be able to include other files inside that barrier.</li> <li>support building and executing of unit tests automatically (fast feedback loop for TDD) on host</li> <li>support unit tests to be run on target simulator</li> <li>support code static analysis</li> <li>support code generation</li> <li>support code duplication detection (enforce DRY principle)</li> <li>support code beautification</li> <li>support generation of unit test code coverage metrics</li> <li>support generation of code quality metrics</li> <li>be platform-independent</li> </ul> <p>I could write my own build tool and spend a lot of time on it. However, that is not my area of expertise and I'd rather not re-invent the wheel if someone has already created such a tool.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload