Repeat after me:

Cmake Rocks

Cmake Rocks

Cmake Rocks

While we named this new blog rants, let’s start by praising something which makes developer’s daily grind a little less of a grind. Cmake is exactly that. A dev friendly replacement for traditional auto* tools.

Benefits:

  • The CmakeLists.txt files are models of clarity and only require you to add the name of a file once, where makefile.am requires three different entries for a single file.
  • Speed – on my quite ordinary Linux system it takes 5-7 seconds to generate all the makefiles for Scribus, compared to 30-50 seconds for auto*
  • Much more useful error messages when you make a mistake in editing files. Auto* error messages have been known to drive developers to a state of madness trying to fix the errors.
  • Smaller makefiles. 57kb for the main Scribus makefile from cmake vs 257kb from auto*
  • In the future, compiling Scribus with cmake is as simple as: cmake .

It took me about all of 10 minutes after installing cmake to be able to grok and hack on cmake files in our source code. That rocks.