
on Sat May 12 2012, Sergey Popov <loonycyborg-AT-gmail.com> wrote:
On Fri, 11 May 2012 21:56:47 -0600 Dave Abrahams <dave@boostpro.com> wrote:
I think you're not giving CMake enough credit. It has been evolving quite quickly over the past few years. Its programming language may be old and crusty, but it's expressive enough to get the job done. Most importantly, it hits a "sweet spot" between abstract and direct that makes it practical and accessible.
The language isn't the only problem. Remember Makefile generation? It absolutely isn't justified.
It's justified by two things: 1. The fact that it works well in practice 2. The fact that it's compatible with many different environments and usage patterns and with the desire of many programmers to work in an IDE.
Autotools uses this approach only to achieve the cool trick of allowing you to make distribution packages that don't require anything other than standard unix utils to be built. It's just easier to make an unitary build tool than mess around with makefile generation and suffer all limitations of this approach.
I don't notice any particular limitations in CMake projects due to that approach. Do you?
What's so hard about implementing topological sort, anyway?
Not much. But that's a bad way to do things if you want to exploit parallelism. Many small issues like that are why I'd rather let a tool like make handle the job.
Make isn't magic.
All in all, the fact that build tools with such ancient design are still seriously developed is disheartening. Pretty much shows that people don't care much about buildsystems.
I think you've mischaracterized it. Many people care about buildsystems. However, some of us care more about practicality than purity. -- Dave Abrahams BoostPro Computing http://www.boostpro.com