LWN.net Logo

The Road to KDE 4: CMake, a New Build System for KDE (KDE.News)

The Road to KDE 4: CMake, a New Build System for KDE (KDE.News)

Posted Feb 22, 2007 10:37 UTC (Thu) by shablool (guest, #28774)
Parent article: The Road to KDE 4: CMake, a New Build System for KDE (KDE.News)

From my experience, SCons (www.scons.org) is much more simple and intuitive then CMake.
It's a pity that the KDE team did not adopt it as their build system.

S.


(Log in to post comments)

The Road to KDE 4: CMake, a New Build System for KDE (KDE.News)

Posted Feb 22, 2007 14:00 UTC (Thu) by k8to (subscriber, #15413) [Link]

This has been my experience as well, but it doesn't seem universal. I'll gladly suffer from multiple build systems if that means I can dump autotools and ant.

The Road to KDE 4: CMake, a New Build System for KDE (KDE.News)

Posted Feb 22, 2007 15:43 UTC (Thu) by gnb (subscriber, #5132) [Link]

They tried it and decided it wasn't what they were looking for. Seems
fair enough to me. That fact that it's exactly what some people want
doesn't necessary make it the right tool for every project.

The Road to KDE 4: CMake, a New Build System for KDE (KDE.News)

Posted Feb 22, 2007 16:59 UTC (Thu) by aleXXX (subscriber, #2742) [Link]

We tried scons and didn't get it working within something like 6 months.
Dependencies, running tools built during the built (without being
installed), RPATH handling, system introspection, portability to OSX,
MSVC and more wasn't implemented or good enough.

We didn't get any support from the scons developers.

We had to modify so much we had bascially a fork of scons.

You have to learn python to use Scons.

You can use all of python in build files, not necessarily a good thing.

That's how the most simple cmake file looks:

ADD_EXECUTABLE(helloworld main.c)

And CMake isn't tied to Makefiles. You can also build KDE using XCode on
OS X, Visual Studio on Windows and KDevelop on Linux.

Alex

The Road to KDE 4: CMake, a New Build System for KDE (KDE.News)

Posted Feb 24, 2007 10:32 UTC (Sat) by k8to (subscriber, #15413) [Link]

Not to try to quibble with your decision making (it sounds completely reasonable to me), but two objections:

- You have to learn python to use Scons.

Feature, not bug. All make systems are specialized mini-languages which tend to slowly sprawl. Python is a relatively mature well-stewarded language which many people already know, and hews more closely to most people's programming experience than most build-tools do. In essence, learning python is easier for many people than learning Make.

- And CMake isn't tied to Makefiles.

If this is a response to the parent (which I can no longer see), apologies. But of course, neither is Scons.

The Road to KDE 4: CMake, a New Build System for KDE (KDE.News)

Posted Feb 27, 2007 10:16 UTC (Tue) by aleXXX (subscriber, #2742) [Link]

> - You have to learn python to use Scons.
>
> Feature, not bug. All make systems are specialized mini-languages which
> tend to slowly sprawl. Python is a relatively mature well-stewarded
> language which many people already know, and hews more closely to most
> people's programming experience than most build-tools do. In essence,
> learning python is easier for many people than learning Make.

That's something one can probably argue about with no end.
I prefer Ruby over Python, so for me (and others) it would mean having to learn another full language.
CMake is just a very small language, and you shouldn't use it as real programming language.
This has IMO the advantage that it features only very little syntax and not much stuff you have to learn (since there is not much you can actually learn). It's focused on the task and does the task well.

We had the same discussion in KDE: "a real programming language is much better than some strange macro language". But now that we have CMake since one year, these arguments are gone. The CMake language just works (for what it's supposed to do).

> - And CMake isn't tied to Makefiles.
> If this is a response to the parent (which I can no longer see), apologies. > But of course, neither is Scons.

You are right, that's not a reply to the direct parent. I just noted that much of the discussion was about "make", and you can use cmake without make.

Alex

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds