Boost Installer using NSIS

Greetings, 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. Christopher
participants (1)
-
Christopher Boumenot