This is the eighth post in my SCons series. In this post, I describe how to support arbitrary modules order.
In an earlier episode, I presented the multi-module C++ SCons project. In that episode, I explained that modules need to be specified at the order of dependence.
This restriction can be annoying, and painfully limiting, once your project “gets serious”.
I promised a better solution, and now I provide one π . In a nutshell, the solution is based on a two-pass approach. In the first pass, all library-targets are processed and collected across all modules. In the second pass, all program-targets are processed, using the libraries already collected.
The rest of the post goes into further detail about the solution. The result, as usual, is available on my GitHub scons-series repository. It builds on top of the SCons shortcuts enhancement, in case you need to refresh your memory π .