|
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