On Thu, Jan 30, 2014 at 01:45:12PM +0100, Krzysztof Kosi??ski wrote:
2014-01-30 Joel Holdsworth <joel@...1709...>:
From my experience CMake is a lot easier to use and more widely used than waf. We use waf at work, and it's ok - but not easy to use unless you really know python.
CMake requires you to learn a frustratingly weak and idiosyncratic scripting language which is only useful in CMake (and even there barely so), whereas learning Python is generally useful, especially to a programmer coming from a Java / C / C++ background.
I'm going to second this, as a language cmake is plain ugly (up there with php and apache config in ugliness :). For my own projects I've ended up with a hand rolled build system in preference to cmake (or worse, auto*). When a build tool is so hard to use for most programmers that they write their own in preference, you know it's not really working out.
If you want a programming language, use one :) We already have a dependency on python.
Also CMake has a much larger community around it - hence support for Ninja, MSVC etc., wheras we find ourselves mostly talking directly to the Waf guy.
That's true; on the other hand, it's much easier to add something to Waf.
Yes, a simple program that can be understood with general programming knowledge is always a better choice in the long run. I'm also not clear what benefits cmake really brings. My original attractions to cmake were: Firstly, the efficient parallelisation, but since then I've discovered I can write pretty much the same thing using python in a few tens of lines. The second attraction was the idea that cmake would have all the system integration stuff (find where the cairo headers and libraries are, set the appropriate g++ flags); but we soon found that support was spotty, and adding even trivial new rules was an expedition into the land of pain. The third attraction to me was the spiffy coloured build progress...
All that being said, if there's a consensus we should use CMake, I'll go along with that
I hope not. cmake was great for 2geom up to the point where we wanted it to do something more than make. Then it was just a pain. I still end up getting scislac or acspike to make changes to the cmake config rather than fight its arcane and inconsistent programming language.
njh