On Thu, 2015-03-19 at 23:13 +0000, Krzysztof Kosiński wrote:
- CMake
I would rather use Waf. CMake has its own, sloppy scripting language; writing anything moderately complex in it is an exercise in frustration. By contrast, Waf scripts can leverage all the mighty power of Python.
Killer feature: since Waf stores a database of what was compiled, it support wildcards correctly. As in, when the set of files matched by a wildcard in the build script changes, it will automatically recompiles the correct files, without the need to modify build scripts. CMake cannot do this, because it just generates makefiles, and Make cannot support wildcards in this manner because it does not have any persistence beyond what is stored in the file system.
That is true for the default setup. CMake can also build ninja files which do a pretty awesome job of building quickly and managing the database of dependencies. I like using CMake's Makefile support for reliable builds, but the ninja option for development is definitely a plus.
Ted