From: Reece Dunn (msclrhd_at_[hidden])
Date: 2006-04-03 08:07:27
> On Sunday 02 April 2006 04:42, David Abrahams wrote:
> > > After thinking on it for a few days that is certainly one viable route.
> > > Also the suggestion to use "build-requirements" for consistency is good.
> > > Perhaps that should be added as an alias for "requirements". With that
> > > in mind a few other possibilities spring to mind:
> > I think we should keep experimenting. For example:
> > lib foo : foo.cpp
> > self: # the default
> > <define>COOL=1
> > all: # or maybe "self+users:"
> > <define>ENABLE_LOG=1
> > users:
> > <link>shared:<define>BUILD_DLL=1
> > ;
> Using ":" as last character of word to indicate something looks pretty
> confusing to me, because now you have ":" used in two different ways in the
> same invocation of a rule.
Which would confuse new users even further - so in situation X, I must place a space around the ':' and in situation Y, I must *not* place a space around the ':'!
> lib foo : foo.cpp
> : self <define>COOL=1
> : all <define>ENABLE_LOG
> : users <link>shared:<define>BUILD_DLL=1
> loks more clear to me.
I agree. It is also consistent with the project rule and requirements/build-dir. However, I am not keen on the self/all/users names. I understand what they mean, but to someone new to BBv2, it can be confusing - users of what? Is that me??
I would suggest something like self=this-target, all=all-targets and users=dependant-targets. That way, it makes it clear what rules apply to which targets.
Express yourself instantly with MSN Messenger! Download today it's FREE!
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