On Nov 23, 2008, at 11:43 AM, cyril_wobow wrote:
Robert Dailey a écrit :
On Sun, Nov 23, 2008 at 4:20 AM, cyril_wobow <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]
>> wrote:
Like a ... python front end ?
Seriously, cmake is really, really, really verbose and terribly
unreadable as a scripting language...
I would agree with you in that CMake isn't perfect and it does have
a lot of issues that I've seen in the few hours I've spent learning
it. It has some issues with portability and it also is pretty
unreadable/verbose in some cases. However, considering alternatives
I would say it could be worse. Boost.Build (BJam) is absolutely one
of the most unreadable languages I've seen. I refuse to use it just
because of that fact. I also have yet to find another build system
that generates visual studio project files like CMake does. It
would be nice to see alternatives for comparison though.
Sure, I guess we are all here because CMake is a very powerful
suite, with tons of functionalities and useful abstractions. But I
challenge anyone to seriously tell me that he/she enjoys writing
CMake script. As soon as you don't have to only set a bunch of
variables and call a few built-in macros any more, you get crazy. Do
a bit of string processing, you get crazy. Write/call your own
functions and macros, with argument passing and returning, you get
crazy.
To me, that is definitely THE weakest point of CMake, along with its
fairly arnarchic documentation.
I would be very interested by others' testimonies.
Kudos anyway to the CMake team!
While there are certainly some areas where CMake could be improved
upon the general cross platform support is better than any
alternatives. And the alternatives are not very pleasing...
If I have a project that I need to compile on Windows (MinGW and
MSVC), OS X, and Linux my choices are:
CMake
OR
Makefiles for Linux/MinGW
Xcode Project for OS X (or reuse the Makefiles)
MSVC Projects for Windows.
Now say that I don't know makefiles and only a passing familiarity
with Visual Studio. What am I to do? I can use CMake and be reasonably
confident for my project that I can get a working Visual studio,
makefiles and Xcode project generated for each.
Or better yet, what if I was at a small company where the linux/os
x guy left and I was a windows guy who didn't know _anything_ about OS
X or linux. Who would keep those projects updated? What if it was
OpenSource? Now you have to find another willing contributor to keep
everything up to date for the missing build systems..
The documentation is another issue all together. I think it could
be massively improved but unfortunately I do not have the time to lend
a hand. I have given what I can (Qt Assistant based docs) that allow
one to more easily look for commands, properties and variables but
that is about it.
Having started to update the current implementation of boost's
cmake build system it is becoming apparent that CMake is lacking in
some areas where bjam has the same functionality. This stems from the
fact that a lot of time is spent on making sure bjam works to build
boost so of course bjam has functionality used by boost.build. If that
same time was spent getting the CMake system working for boost then I
don't think there would be as many issues.
Obviously CMake scales, just look at the KDE project. They selected
CMake and it _seems_ to be working for them. Andreas can probably add
some more here.
In summary for my projects (Qt, Command line based, HDF5/XML projects)
and for the number of employees I have (me) CMake is a very large time
saver over the alternatives.
Just my 2 cents
_________________________________________________________
Mike Jackson [EMAIL PROTECTED]
BlueQuartz Software www.bluequartz.net
Principal Software Engineer Dayton, Ohio
_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake