Boost logo

Boost-Build :

Subject: Re: [Boost-build] Named metatarget parameters
From: Vladimir Prus (ghost_at_[hidden])
Date: 2010-03-17 03:40:19


On Thursday 11 March 2010 20:21:20 Gevorg Voskanyan wrote:

> Spencer E. Olson wrote:
> > I wasn't going to chime in, but I had to reply to at least one of the previous
> > posts.
> >
> > Regardless of whether the language parsing could be a problem as Rene pointed
> > out, the arg-type: value1 value2 thing just looks plain ugly and a lot
> > different from what is used currently. Personally, I like the suggestions
> > that Johan is making, such that we would have the following (including the []
> > portion in the requirements):
> >
> > lib program_options
> > : parsers.cpp # By position
> > : requirements
> > <link>static
> > [ target-builds has_long_long : "skipping boost.math long long" ]
> > : usage-requirements <define>BOOST_ALL_NO_LIB=1
> > : default-build
> > <toolset>gcc:<variant>release
> > <toolset>pgi:<variant>debug
> > : description "Does something about dashes on command line"
> > : license "BSL 1.0"
> > ;
> >
> > I really don't like the overuse of the ':' character. The above looks a lot
> > more like 'project' and is much easier to understand and use than either the
> > current format or some of the other suggestions. Furthermore, because we are
> > not introducing a new concept for the ':' character, we don't add any more
> > confusion especially when you might want to put a conditional as demonstrated
> > above in the 'default-build' portion.
> >
> > Spencer
>
>
> I want to second to everything Spencer has said above. Being consistent with 'project' would be
> just great, as it would eliminate one more source of confusion and as such ease the learning
> curve for newbies. Mixing styles (i.e. using [] when it is necessary and omitting otherwise)
> looks fine to me as well, especially as the need to use brackets would probably not come up
> very often anyway.

Thanks for the feedback! It looks like we settle on the following kind of syntax:

    lib boost_math_long
    : parsers.cpp # By position
    : requirements
    <link>static
    [ target-builds has_long_long : "skipping boost.math long long" ]
    ;

to be consistent with the 'project' (apparently, everybody's favourite!).

Now, I only have to update a couple dozen metatarget rules to handle this syntax ;-)

Thanks,

--
Vladimir Prus
http://vladimir_prus.blogspot.com
Boost.Build: http://boost.org/boost-build2

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