Slam 0.2.2 released
[7th April 2007]
I've just put the finishing touches to the latest version of slam, my pet build system for C++ projects. I'm pretty happy with the progress I've made. Most the work was actually refactoring existing code, but there are some notable additions and changes that I'll take the time to highlight here.
Slam now has support for more toolsets out-the-box:
- Generic GCC g++ (versions 3 and 4)
- Apple's g++
- MinGW's g++
- MSVC 6
- MSVC 7
- MSVC 8
- Borland's bcc32 (versions 5.5.1 and 5.82)
- Digital Mars' dmc
Another addition that I'm sure Windows users will appreciate is the Windows installer, which I put together with the Nullsoft Scriptable Install System. It must have the most obscure syntax of any scripting language I've ever come across, but I got there in the end! I'm hoping to make things easier for Mac users too in the near future.
Slam can now use libraries built externally, via the libs and libdirs directives. The applegcc toolset also knows about frameworks, which are controlled with the frameworks and frameworkdirs directives.
But in general, the code is now in a much better state for general tinkering. I'm confident that anyone with a passing knowledge of Python could come along and create a new toolset for their custom compiler, no sweat.
There are numerous other small fixes and tweaks, too. See the version history for more information.
I think the road ahead is pretty clear too. I hope the next version will have support for:
- Conditionals in slamfiles to handle compilers that really insist on doing things differently!
- The Open Watcom compiler
- Dynamic libraries across all toolsets
- Easier installation on the Mac
If you decide to try slam, feel free to leave any comments on your experiences!
Comments
All original content copyright© Edd Dawson.
All source code appearing on this website that was written by Edd Dawson is made available under the terms of the Boost software license version 1.0 unless otherwise stated or implied by the license associated with the work from which the code is derived.
