On Wed, Jan 27, 2010 at 10:07 AM, Mathias Bauer <[email protected]> wrote:

> The parallelization comes from the build.pl. Let's go back to our simple
> example with the 4 libraries/modules. When build.pl is called to build
> D, it discovers it has to build B and C before (as the build.lst of D
> tells so). And as B depends on A, build.pl will start either witch
> building C (and will fail as C also depends on A but that dependency was
> forgotten in C's build.lst) or with building A (as B's build.lst tells
> that A needs to be built before B). In the latter case the missing
> dependency stays unnoticed because A already has been built when finally
> C is built.

I think I see your concern now. When CMake does the library
resolvation part it does it itself (i.e. not with Make) and this is
always done with a single process and looking at the global state. The
makefiles it produces are recursive, but they are generated with full
info similar to the way the single process GNU Make thing works.

Your goal has been "build everything from a single process", but what
you actually want is "resolve dependency graphs with global scope".
The latter is what CMake does by default.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to