Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-05-12 04:21:07


Hi Johannes,

> > 1. Make the 'glob' rule be relative to *source directory*, not project
> > location. So, in your case, simple
> >
> > [ glob *.cpp ] ;
> >
> > will work.
>
> When I first thought about the globbing rule I expected that I have to use
> it exactly that way, i.e. relative to the current 'source directory'. So
> this is pretty fine for me.
>
> > 2. Fix 'glob' so that it supports directories in patterns. I think I can
> > do it.
> >
> > How does the plan looks?
>
> This would be fine. If you could send me a patch it would be perfect.

I've comitted changes and tests for the new behavious. The patch is also
attached.

> Ok, now I have a more general question about the state of the
> boost v2 build system. Is there any schedule when BBv2 will
> replace BBv1 as the offical boost build system. What are
> the show stoppers?

I can't say about any fixed date. However, I'm going to do my best to make V2
ready by the next boost release. Since it's planned for June, I'm not sure
that release will use V2, but I hope it will be possible to run regression
tests on most popular platforms.

There are no major showstoppers. Mostly we need more toolsets.

> I'm unsure whether I should build my
> project with one of the following tools:
>
> BBv1, BBv2, SCons or CMake

I think V2 is better that V1. I haven't used SCons or CMake, so my opinion is
necessary biased. I believe that CMake works by creating native makefiles...
that means it is not suitable for building several variants at once, and
probably shares the drawbacks of makesfile (like bad dependency handling
between individual subprojects).

SCons is an interesting tool. I believe that Boost.Build is a bit more
high-level but you probably should decide for yourself.

- Volodya
 --Boundary-00=_DyeoA5R7zkjjCdg Content-Type: text/x-diff;
charset="koi8-r";
name="glob.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="glob.diff"

Index: build/project.jam
===================================================================
RCS file: /cvsroot/boost/boost/tools/build/v2/build/project.jam,v
retrieving revision 1.73
retrieving revision 1.75
diff -u -r1.73 -r1.75
--- build/project.jam 31 Mar 2004 06:53:55 -0000 1.73
+++ build/project.jam 12 May 2004 08:50:04 -0000 1.75
@@ -600,9 +600,30 @@
import path ;
import project ;

- local location = [ project.attribute $(__name__) location ] ;
- local all-paths = [ path.glob $(location) : $(wildcards) ] ;
- return $(all-paths:D="") ;
+ local location = [ project.attribute $(__name__) source-location ] ;
+
+ local all-paths ;
+ if ! $(wildcards:D)
+ {
+ # No directory in any wildcard -- the simplest case.
+ all-paths = [ path.glob $(location) : $(wildcards) ] ;
+ all-paths = $(all-paths:D="") ;
+ }
+ else
+ {
+ for local w in $(wildcards)
+ {
+ local l = [ path.join $(location) $(w:D) ] ;
+ local paths = [ path.glob $(l) : $(w:D="") ] ;
+ for local p in $(paths)
+ {
+ all-paths += [ path.relative $(p) $(location) ] ;
+ }
+ }
+
+ }
+
+ return $(all-paths) ;
}
}

 --Boundary-00=_DyeoA5R7zkjjCdg--


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