Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-11-17 03:40:43


On Wednesday 17 November 2004 11:30, Rene Rivera wrote:

> Modified Files:
> allyourbase.jam boost-base.jam
> Log Message:
> Fix extra updates on targets when a header has the same name as a directory
> which is in the headers search path.
>
....
> + for local angle-include in $(angle-includes)
> + {
> + HdrSearchAndLocate $(angle-include) : $(HDRSEARCH) ;
> + }
> + for local quoted-include in $(quoted-includes)
> + {
> + HdrSearchAndLocate $(quoted-include) : $(gBINDING($(<)):D)
> $(HDRSEARCH) ; + }
> +
> BINDRULE on $(s) = remember-binding ;
>
> # Propagate on $(<) to $(>)
> @@ -730,6 +748,35 @@
> HDRRULE on $(s) = $(HDRRULE) ;
> HDRGRIST on $(s) = $(HDRGRIST) ;
> }
> +rule HdrSearchAndLocate ( header : search * )
> +{
> + if ! $(gBINDING($(header)))
> + {
> + local header-glob = [ GLOB "$(search:G=)" : $(header:G=) ] ;
> + local header-locate = ;
> + for local bound-path in $(header-glob)
> + {
> + if ! $(header-locate)
> + {
> + if ! [ GLOB "$(bound-path)" : * ]
> + {
> + header-locate = $(bound-path) ;
> + }
> + }
> + }

Rene, did you do any performance testing of this patch? This seems to me a
pretty easy way to kill performance. FWIW, I've spend some time removing any
loops from V2 header scanning because of performance reasons.

- 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