Hi,

On Monday 11 February 2008, Eric S. Raymond wrote:
> Alexander Neundorf <[EMAIL PROTECTED]>:
> > I would even prefer if you ask before you decide for one or the other :-)
> > The blog you referenced consisted of mostly anchorless rants, which I
> > already replied to each of his points.
> > I'd happily discuss the issues which you consider weak points in cmake.
>
> One is the recipe syntax.  I have difficulty trusting the internals of
> any language-like tool in which the surface features of the design look
> so ugly and verbose.

I can't really argue about trust.
Just let me state a few points:
-cmake started as an internal tool for building ITK (http://www.itk.org), and 
from that time it has some more ad-hoc "we just need to get it build" 
features, like e.g. use_mangled_mesa(). Just later on it turned into a 
general purpose build tool, and since then the focus has been on an clean 
design.

cmake is developed by Kitware Inc, an open source company, which is profitable 
ever since it exists. They are using cmake for all of their projects, ITK, 
VTK, IGSTK, ParaView (http://www.paraview.org), which is a really complex 
software, running on all major operating systems and since last year also on 
super computers. IOW, cmake is an industrial strength tool. As one of their 
vice presidents put it "we are there for the long haul". So we can rely on it 
being there and actively maintained for the coming years.

Since 2 years cmake is used as buildsystem for KDE4. This means, today it 
builds KDE4 on Linux, FreeBSD, Solaris, Mac OSX and Windows (both mingw and 
MSVC). AFAIK nobody tried yet to build KDE4 on NetBSD, HP-UX, AIX, Hurd or 
any of the other platforms cmake supports.
Using it in KDE also means that it is used heavily now since two years by 
hundreds of developers. In the beginning there were some things which are 
different than with autotools, now there are no major complaints that I know 
of left.

I was working at Kitware for half a year, and I can assure you that the cmake 
developers at Kitware are among the most skilled and dedicated developers 
I've ever met (I haven't met you yet ;-). I personally fully trust them.

CMake is no general purpose scripting language, so programming something in 
cmake is harder than e.g. with ruby. Instead it has a set of specialized 
commands for building software (e.g. add_custom_command), since actually you 
want to use it for just that, building software. Nevertheless cmake 2.6.0 
which will be released RSN has some nice new features which help, e.g. 
finally variables with local scope, a return statement and more.

Beside that, cmake has builtin support for unit testing, packaging and cross 
compiling.

> A bigger one is that I think the two-level design -- cmake making makefiles
> -- must inevitably have many of the same fundamental weaknesses as
> autotools, Imake, and other makefile-generator systems.  I am intimately
> familiar with these and want to get away from that approach.  As far away
> as possible.

What are the fundamental weaknesses ?

An advantage of cmake is that it doesn't only support generating makefiles, 
but also project files, e.g. KDevelop3, Eclipse, Xcode and Visual Studio, so 
developers used to these IDEs can continue using them.

Alex

_______________________________________________
Wesnoth-dev mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-dev

Reply via email to