views:

155

answers:

2

Hello!

We are looking for adequate build tool for a desktop GUI application to be written in D (using Qt toolkit), consisting of several native libraries, using 3rd party C-lib(s). It has to build on Linux (native development) and Mac as well on Windows. We might adopt Code::Blocks as IDE.

Waf already has support for D language, while CMake is just receiving it cmaked2.

CMake uses special language, while Waf is pure Python...Otoh, CMake, via CPack, can produce pacakges in several formats as well as GUI installer for e.g. Windoze.

Any pro/cons and what would you use?

We excluded Scons for speed reasons and autoconf, so, please, advice against CMake/waf only.

Update: Although not received any reply here, we were researching in other places, did some reading & testing and decided to use Waf (1.6. release is just around the corner).

+3  A: 

I would/do use CMake

I've seen CMake used in many more places than Waf. Most importantly the KDE project is now using CMake.

I did some research on google code search:
there are 2,097 wscript files in various opensource projects
compared to 36,914 CMakeLists.txt.

So CMake is definitely more popular.

I also tried a to look at google trends to see which was gain more traction CMake or Waf. It wasn't succesful as Waf is too general (ie Wife Acceptance Factor), and Waf build doesn't show up in trends at all.

Scons is known to have terrible performance issues. As Waf is Scons derived I worry about it performance.

Lastly, CMake has terrible syntax and Waf has beautiful syntax. Since you're going with D it looks like you're willing to go off the beaten path for superior tools. In that case Waf may be the perfect fit.

caspin
@caspin: As far as performance, have you seen this benchmark: http://tinyurl.com/9chgax ? Yes, I prefer nice tools and investing time in brushing my python skills instead of learning obscure scripting language.
gour
Those benchmarks are really informative. It makes we wish CMake had a bjam generator.
caspin
+1  A: 

Waf is very fast and has been chosen as the build system for Samba (http://samba.org/). It is also used by many proprietary projects because it lets you do crazy things that are impossible in Make/CMake.