Boost logo

Boost Interest :

From: Doug Gregor (doug.gregor_at_[hidden])
Date: 2008-05-22 08:44:34


I've spent some time improving the CMake-generated Windows binary
installer for Boost. An example of the kind of installer we can now
generate is posted here:

  http://www.osl.iu.edu/~dgregor/Boost-1.35.0-vc8.exe

This actually comes from the release branch, so "1.35.0" is a bit of a
misnomer (sorry). Still, there are some cool features in this
installer that are worth checking out:

  * Each Boost library that is either modular or builds library
binaries has its own installation group; you can turn on/off
installation of that library.
  * You can turn on/off installation of individual library binaries
(e.g., Boost.Filesystem's "Static, multi-threaded, debug")
  * Modular libraries let you turn on/off installation of library
headers. Any non-header-only library lets you turn on/off installation
of the library sources.
  * Inter-library dependencies are automatically handled: try turning
off installation of the headers for the Boost.System library. You'll
see that it automatically turns off installation of the sources for
Boost.System (which can't be built without the headers), the headers
for Boost.Filesystem (which rely on the Boost.System headers), and the
sources for Boost.Filesystem (which rely on the Boost.Filesystem
headers)
  * If you go through the installation process, then run the installer
again, it determines which components were installed so that you can
use this installer to add/remove components from an existing
installation.

If you update your Boost-CMake branch, you can build these installers
yourself. Unfortunately, it's a little harder than it should be
because the component-based installation isn't yet in CMake. So, if
you want to build these installers yourself, you need to:

  1) Get NSIS from http://nsis.sourceforge.net/Download and install it

  2) Get my component-based installation patch or CMake from
http://public.kitware.com/Bug/view.php?id=6847
      Apply the patch to a checkout of CMake CVS and use that to build
the NSIS installer.

If you don't use my CMake patch, you'll still get a working installer,
but it won't have the cool component-based installation features.

There's more that we can do with this binary installer, e.g.,

  - If we put information about each library into CMake, e.g., the
description, authors, maintainers, etc., that can be displayed when
the user's mouse hovers over that library's component in the
installer, e.g.,
       The Boost.Filesystem Library

       Portable facilities to query and manipulate paths, files, and
directories.

       Author: Beman Dawes <e-mail address>

  - We can add different "installation types" that provide a
pre-selected set of components. For example, "Complete" (everything),
"Runtime" (shared libraries only), "Sources" (headers+sources), etc.

Comments welcome!

  - 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