Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-08-12 08:45:02


Hi,
I've a use case which is not very well supported by V2 at the moment:

project
: requirements <library>/some_library_that_takes_long_time_to_build ;

lib runtime1 : main1.cpp common ;
lib runtime2 : main2.cpp common ;
lib common : common.cpp : <link>static ;

So, I have some library "common" that I made static to avoid the trouble of
installing yet another library. However, that library gets project
requirements too, and so tries to build
some_library_that_takes_long_time_to_build with <link>static. Now, I don't
want that at all, not to mention that static library can't be linked with
another static library.

However, there's no easy way to avoid this behaviour. I was thinking about
this:

lib common : common.cpp : local:<link>static ;

to make requirement non-propagated, or about

lib common : common.cpp : <no-project-requirements> ;

to avoid inheriting project requirements or about

lib common : common.cpp
: -<library>/some_library_that_takes_long_time_to_build
;

to selectively disable some of the project requirements.

The latter two can be useful for another use case:

project : requirements <library>util ;
exe a1 .....
exe a2 .....
lib util : util.cpp ;

Now, this does not work, because util tries to build itself recursively.

Any comments or better ideas?

- Volodya

-- 
Vladimir Prus
http://vladimir_prus.blogspot.com
Boost.Build V2: 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