Boost logo

Boost Interest :

From: Doug Gregor (doug.gregor_at_[hidden])
Date: 2008-07-14 22:45:13


Now that we've started modularizing everything in Boost, we have a
heck of a lot more BUILD_BOOST_* options in the CMake configuration,
as well as the ton of TEST_BOOST_* macros we had before. I see a few
problems with this approach:

  1) The sheer volume of these options hides other, more important options.
  2) It's hard to use these options. If I just want to build 5
libraries, I have to turn off all the others
  3) We don't give good feedback if one turns of a library that
another library depends on

Instead, I suggest that we have advanced cache variables
BOOST_INCLUDE_ONLY and BOOST_EXCLUDE_ONLY. Users can set only one of
these, and they have the following behavior:

  If one sets BOOST_INCLUDE_ONLY, CMake will compute the transitive
closure and update BOOST_INCLUDE_ONLY, notifying the user of the extra
libraries it added. Once this has settled, we'll just build these
libraries.

  If one sets BOOST_EXCLUDE_ONLY, create a list of all Boost libraries
that (1) aren't in BOOST_EXCLUDE_ONLY and (2) don't depend on
something in BOOST_EXCLUDE_ONLY.

As for testing, we should have test targets for all of the libraries
that are included, when testing is enabled.

I believe that this approach better fits the use cases for this
functionality ("I hate signals, turn it off!"; "I just want MPI; give
me that and whatever it needs") and will make Boost-CMake easier to
use.

  - Doug


Boost-cmake 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