Porting engineer


Command line user
Build script writer
Porting engineer
Build developer


C/C++ porting engineer

The porting engineer is a particular type of user. He is a kind of heavy user in the sense that he has to be aware of some internals of the system that most users can easily afford to ignore. For example, the average user may ignore that SCons is the engine behind SBuild, the porting engineer can not.

One of the chief qualities of SBuild is the set of features dedicated to the porting engineers. Some saves him time, some ask a higher effort of him (for the sake of higher reusability, so later gains for the entire company). Among these "game changing" features of SBuild we mention:

  • Separation of concerns: product specific settings are separated from the product independent settings

  • Separation of concerns: target platform settings are separated from build platform settings.

  • Deep introspection: SBuild may dump the conditional compilation skeleton of your C/C++ code. That is helpful because conditional compilation is frequently used to adapt code for different platforms.

  • Deep introspection: SBuild can stop the build on places where customization per target platform was expected but not provided

Many porting engineers new to SBuild are not expecting such features because the older build systems they were used to simply didn't provide anything similar. In fact, older systems often have nothing in the way of the porting engineer needs and many porting efforts ended up by completely rewriting the build description of the product (followed by the typical set of problems brought by duplication of logic). So SBuild is a bit of a shock for them at first but once the learning curve is behind, they don't want to go back to any older way (the new way can do some things that the older way simply can not do).

Here is some guiding for the tasks of the porting engineer

  FAQ for the porting engineer


Home | Command line user | Build script writer | Porting engineer | Build developer | Feedback

This site was last updated 10-Jun-2010