|
Boost-Build : |
From: Pedro Ferreira (pedro.ferreira_at_[hidden])
Date: 2003-12-02 12:34:03
Hi Volodya,
> 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?
Not really - it looks like a good solution.
Best regards,
Pedro
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