Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-12-02 08:57:38


I'm trying to make the final optimization pass on generated headers. As you
know, when constructing "exe", V2 adds implicit -I paths to all target paths,
so that #includes of generated headers work.

This was optimized recently, but still, those extra includes cause performance
problems. For example, for Boost regression tests, I bet that <boost/
config.hpp> is scanned once for *each tested library*, since when each
library is compiled it has additional -I option, which is different for each
library. So, scanner has no choice but to rescan header several times with
those different extra include paths.

I think I know a good solution. Now, the action class which compiles cpp files
just adds <include> properties for targets in the same main target. Why don't
we find only targets which type is derived from "H", and add paths of those
targets?

So, if no headers are generated, you get no extra include paths, and there's
no penalty to pay.

I even implemented this solution. All tests pass and for regression tests I
get 2x speedup over current code (and besides, over v1, too).

Anybody sees any serious problems with the above?

- Volodya

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk