Choosing between Scons and Waf in Large Projects

Nordlöw picture Nordlöw · Sep 24, 2012 · Viewed 7k times · Source

We are thinking about converting a really large project from using GNU Make to some more modern build tool. My current suggestion is to use SCons or Waf.

Currently:

  • Build times are around 15 minutes.
  • Around 100 developers.
  • About 10 percent of code is C/C++/Fortran rest is Ada (using gnatmake).

Potential hopes/gains on improvements are

  • Shared Compiler Cache to cut down build times and requires disk space
  • Easier maintenance

Does SCons scale well for this task? I've seen comments on it not scaling aswell as Waf. Those are however a couple of years old. Have scons gained in performanced the last years? If not, what is the reason for its bad performance compared to Waf.

Answer

Matt Clarkson picture Matt Clarkson · Feb 7, 2013

I have been developing a tool chain for our company that is built around waf. It targets Fedora, Ubuntu, Arch, Windows, Mac OSX and will be rolled out to our embedded devices doing cross-compilation on various hosts.

We have found the way that waf allows contained extensibility through the tools, features and other methods has made it incredibly easy to customise and extend for our projects.

Personally, I think it is brilliant and find it nicely abstracts the interfaces to different tools that are integrated.

Unfortunately, I have no in-depth experience with Scons but lots with GNU Make/Autotools. Our decision to go with waf after evaluating build tools was that we needed something that worked well everywhere which made our build tool being backed by python and that it was fast. I based my decision on these results and went from there.