
on Thu May 10 2012, Olaf van der Spek <ml-AT-vdspek.org> wrote:
On Thu, May 10, 2012 at 10:52 AM, Beren Minor <beren.minor+boost@gmail.com> wrote:
I think Boost.Build and CMake are at a totally different level of abstraction: CMake is low-level when Boost.Build is high-level. For comparison with other build systems, Make, SCons are at the same level as CMake. Premake is probably closer to Boost.Build (I don't know enough others but there's not a lot being as high-level as BBv2).
Of course SCons and CMake still have a major advantage over Make because of their portability. But they offer a very little abstraction over simple Make. Surely, there are some built-in rules to easily create shared/static libraries or executables, but you still have to define a lot of things manually. As an example, I quickly realized that CMake is simply unable to create both shared and static version of a library if you don't explicitly write the two rules to build them.
I've got the same problems with CMake. Something as simple as a cross-platform build file for a Hello World app or library isn't possible.
That's obviously wrong; we are building all of Boost (including its executables) cross-platform with single build files and little or no platform switching. -- Dave Abrahams BoostPro Computing http://www.boostpro.com