Boost logo

Boost-Build :

From: Rene Rivera (grafik.list_at_[hidden])
Date: 2006-04-01 15:45:43


Jürgen Hunold wrote:
> Hi !
>
> Am Maandag 27 März 2006, 10:11 schrieb Vladimir Prus:
>> Hi Rene,
>
>> Like Dave, I'm a bit concerned about using <*> which means something
>> completely different in V1. Maybe, we can just use '*' without '<>'? Or
>> maybe, some keyword, like "usage". Using just '*' can look like black
>> magic.
>
> What about naming the section (alike the "project") and then add a section
> named "common-requirements" and be done ?
> This would add its entries to both "requirements" (better
> "build-requirements" ?) and "usage-requirements".

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:

1. Use of build-requirements, usage-requirements, and
common-requirements in one section instead of more sections:

lib foo : foo.cpp :
   build-requirements
   <define>COOL=1
   common-requirements
   <define>ENABLE_LOG=1
   usage-requirements
   <link>shared:<define>BUILD_DLL=1
   ;

2. Use of a conditional like syntax on the individual requirements to
override the section:

lib foo : foo.cpp :
   <define>COOL=1
   common:<define>ENABLE_LOG=1
   usage:<link>shared:<define>BUILD_DLL=1
   ;

In that case the default is to use the section type. So for example one
could put common requirements in the usage section:

lib foo : foo.cpp :
   <define>COOL=1
   : :
   common:<define>ENABLE_LOG=1
   <link>shared:<define>BUILD_DLL=1
   ;

-- 
-- Grafik - Don't Assume Anything
-- Redshift Software, Inc. - http://redshift-software.com
-- rrivera/acm.org - grafik/redshift-software.com
-- 102708583/icq - grafikrobot/aim - grafikrobot/yahoo

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