After searching a lot and reading a lot of information, I cannot decide which tool I should use for compiling my code. My codebase is mainly c++. I use primarily linux as my development machine.
Based on opinions I read before, my final candidates are waf and cmake, but I cannot decide myself which one should be more appropiate.
My primary requirements are:
- Must be able to compile software in windows/linux and android.
- Must be ready to run tests.
- Must be able to play nicely with other libraries that must be compiled with another build system but most likely will have to be compiled from source.
- Must be able to add custom steps, like for example, generating some data from some files (mainly graphics) before compiling, all integrated in the build system.
Some strong preferences are:
- Being ready to support MAC compilation.
- Being able to cross-compile from linux as many platforms as I can (maybe windows/linux/android but cannot MAC?)
- Being able to add support for iOS compilation if the need arises.
- Would be nice if the invocation interface was similar to that of autotools, since it is the one many people know and it is well documented.
Some questions:
- If I have some rare requirement, which build system would be more ready to be extended?
- Are both currently well maintained? (I wonder about waf mainly).
- Community: if I find a problem, both communities are big enough to support me, in your experience?
For now my feeling is that I favour waf a bit as a tool, but cmake seems to have been quite successful for whatever reason.