From: Christopher Boumenot (boumenot_at_[hidden])
Date: 2005-06-30 12:33:12
I been following the discussion about the generation of a Boost
installer, and decided to take the plunge. I have the beginning of a
Boost installer. It's a Perl script that scans an already installed
version of Boost and generates a generic XML description. (I envision
the release manager building Boost and then uploading the Windows
installer to sourceforge.net.) This XML description is fed back into
the script, and it generates an NSIS script.
I've been doing some testing on my system. Using the free compiler from
Microsoft (Windows 2003 Toolkit) and building Boost myself results in
about 525 MB of data. Using the NSIS installer brings the entire
installation down to 10.5 MB, a sizeable reduction. Not all of the
targets are built because the toolkit doesn't ship with all of the
necessary libraries. I think people were quoting 700 MB or so, that
should still result in a small installer.
The XML file is broken up into modules, or libraries. It uses bcp to
generate a list of dependencies for each module. Only those files
necessary are installed.
The list of modules is generated dynamically based on the top-level
files located in the include/boost-1_XX/boost. The library directory is
also scanned to determine which files correspond to which module. (This
is on my TODO list, see boostal.pl for details.)
It should be easy to add support for other installers. They can parse
the XML file to get all of the information they need. More information
can be added as necessary
I've placed the script on the Web for perusal:
http://www.divebomb.org/proj/scripts/boostal.tgz, and the generated NSIS
file is available http://www.divebomb.org/proj/scripts/boost.nsi.gz.
I've added more documentation to the script about how it works. I'm
also looking at the Boost builder GUI for Windows as well. (Someone had
suggested win32gui as a start, and that looks good to me.) Let me know
what you think, if this works, what needs to be addressed/fixed/tweak, etc.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk