CMake now really taking off ?

Recently it seem a lot of projects are switching to CMake.
Just today I read the news about Debian forking cdrecord and almost missed the little note near the end of the article:
"For our fork we used the last GPL-licensed version of the program code and killed the incompatibly licensed build system. It is now replaced by a cmake system,"

Do you know OpenWengo ?
It's a VoIP client, also featuring video support, and you know what ? They are also testing CMake. These guys also have a Trac running, which is great software, check it out if you need an integrated Wiki/Bugtracker/Sourcecontrol web application.

Or take the premier Open Source Desktop Publishing application, Scribus . They switched already to CMake, and apparently without major problems:

All apps listed above are Qt4/KDE4 applications (except obviously cdrtools), but there are also other projects switching:
Boson, a real time 3D strategy game is now build with CMake.

Do you know Chicken Scheme ? CHICKEN is a compiler for the Scheme programming language, available under the BSD license. Chicken scheme can now also be built with CMake: .

CMake also seems to be popular among researchers: both MOOS, the "Cross platform software for mobile robotics research", as also Orca, which is an an open-source framework for developing component-based robotic systems, are using CMake for building their software.
There is also EMAN, a software for single particle analysis and electron micrograph analysis developed at the Baylor College of Medicine, and they too went with CMake.

So, are we seeing the beginnings of a big change (at least for developers) ?

On the KDE side, there's one important thing to mention:
from September 12th, CMake 2.4.3 will be required for building KDE. So if you haven't updated yet, do so now !

I also plan to improve the automoc implementation. Currently approx. 20 to 25 percent of the time of a cmake run are spent in automoc. I plan to move this from cmake time to build time and do it only if required. This will cut off quite some time.


P.S. and, well, if you really want to, you can even abuse CMake to convert wavs to mp3s:

file(GLOB wavs "*.wav")

foreach(file ${wavs})
get_filename_component(basename ${file} NAME_WE)
exec_program(lame ARGS -b 192 -h ${file} ${basename}.mp3)


boson is a qt app as well ;-)

By superstoned at Mon, 09/04/2006 - 21:49

I want to convert my KDE 3 apps to cmake if possible. Can you give an honest appraisal of how capable cmake is with Qt3/KDE3? Many thanks :)

By mxcl at Tue, 09/05/2006 - 10:19

KDE3 support is much less tested than the KDE4 support, but it works. Boson uses it as its official buildsystem.
Current cmake cvs KDE3Macros.cmake/FindKDE3.cmake have some fixes compared to the ones coming with cmake 2.4.3.
So if you start using it, we can fix any remaining issues.


By Alexander Neundorf at Tue, 09/05/2006 - 20:39

Blender uses SCons, but in it's mailinglist some developers are talking about using CMake. Most parts of blender (blender itself, but not blenderplayer or the gameengine) are already compiling with CMake.

But for the wav2mp3 conversion, wouldn't a shell script be better (shorter and runs everywhere):

for file in *.wav; do
lame $* -b 192 -h "$file" "$(basename "$file" .wav).mp3"

By Mathias Panzenböck at Tue, 09/05/2006 - 12:17

I switched my blogging app, QTM, to CMake over the weekend; I got the help of Jacek at Qt Centre who posted this guide at the Qt Centre wiki. So much easier than the Autotools (which are not the best documented of tools out there; to my knowledge the only printed book went out of print some years ago). Perhaps someone should get round to putting out a book on both tools?

By Yusuf Smith at Tue, 09/05/2006 - 14:43