|
----- Original Message ----- From: David Manura Date: 3/2/2011 10:21 PM
Ah, me, too. I just want a build system that does everything I need without fuss and does it quickly. (Hey, just because I maintain JamPlus doesn't mean I'm always happy with it... I spent an hour the other day in a Jam rule trying to determine why it wasn't working!)On Wed, Mar 2, 2011 at 11:31 AM, Joshua Jensen<josh.jjensen@gmail.com> wrote:LuaPlus uses the build system JamPlus to build Lua binaries and some 60 Lua modules on Windows, Mac OS X, and Linux. JamPlus works with Visual C++ 6 through Visual Studio 2010 and MinGW (not recently tested) on Windows and GCC on Linux and Mac OS X. Like CMake, JamPlus generates appropriate IDE projects for Visual Studio or Xcode. [...] Lua.CModule bitop : bit : bit.c ;Thanks for sharing. I'm a little weary of yet-another-homegrown-build system [4] (albeit jam fork here),
I spent years in front of SCons, Boost Jam, CMake, and others trying to avoid yet another build system. But my requirements always seemed to extend beyond those offered by others with performance [1] being near the top of my list. I started using Jam in 2004 for a cross-console project. I tried to use others that were Python-based (SCons) or had more features (Boost Jam) or could perform IDE project generation (CMake). None had everything I wanted for huge projects; at least one other person concurred [2] [3] [4].
No, there is not a detailed published description of the overall motivation, but there now deserves to be. What was a contribution to sweng-gamedev some years back of what I was using for my own projects has ballooned into something larger. JamPlus is now being used by corporations. It is cross platform. It has nifty supports for all the standard platforms plus iOS devices, Android NDK, and the Google Native Client. People have added (under NDA) support for Wii, Xbox 360, and PS3. It has built-in parallel build support for Lua through Lanes <grin>. Others are improving the software and contributing fixes. JamPlus stands as one of my most successful open source projects for that reason alone; I'm not getting contributions just from individuals, I'm getting them from corporations, too, and not infrequently.I'm curious if there's any more recent or detailed published description of the motivation given below, particularly in relation to the bigger names of cmake and bjam.
With regard to CMake: Barring CMake's Makefile generator, the Visual Studio project generator lets Visual Studio run the build. CMake may provide pre- and post-build steps, but the build is turned over to the IDE to handle. That is what CMake was designed for. In contrast, JamPlus actually runs the build beginning to end in IDE or without.
With regard to Boost Jam: It is slow. Another studio within the organization I work uses Boost Jam. Benchmarks proved that Boost Jam is considerably slower than straight Perforce Jam + patches. Boost Jam has some (really) nice features, but they broke performance pretty badly. If this has changed in the past year, that's great!
[1] http://permalink.gmane.org/gmane.games.devel.sweng/7157 [2] http://gamesfromwithin.com/the-quest-for-the-perfect-build-system [3] http://gamesfromwithin.com/the-quest-for-the-perfect-build-system-part-2 [4] http://gamesfromwithin.com/bad-news-for-scons-fans