[zeromq-dev] CMake adequacy

Kelly Brock Kerby at inocode.com
Tue Oct 19 06:05:00 CEST 2010


If you are going to use a build tool just for Window's, I'd argue in favor
of Premake4.  CMake's language is a pain in the ass, even more quirky than
makefiles and all the autoconf-like stuff it does is basically completely
unneeded on windows.  I wrote premake4 builds for zmq first day I started
using it, it took about 30 minutes to figure out which files I needed and
the correct defines, since then it has just been a minor update once due to
change from upstream/downstream to push/pull files.

I feel rather strongly about CMake in the negative.  I used it, liked its
abilities but despised the language and missing cross language support.  (I
use C#/Mono for certain parts of my codebase, mostly just tools which need
windows.  CMake doesn't support that.)  Premake is just a Lua extension with
"make" abilities.  Lua is a well defined, generic and simple language, CMake
script is a mess of make/bash/perl/whatever concepts all mixed up which are
archaic and bizarre in comparison.

For a new/clean codebase, CMake is intended to replace autoconf and do a lot
more things.  Premake is basically the same but it doesn't have much of the
autoconf code, it's still adding it.  CMake uses a god awful language,
premake is just an extension of lua.  CMake does not support much more than
any language supported by gmake, Premake supports anything you want to add
and currently supports what CMake does plus C#/Mono, addons exist for D, Go,
and other "new" languages.

Maybe the folks you are talking about have a reason for needing a
complicated god awful build system, zmq doesn't need such a monster.  My
initial premake scripts have worked on Windows, OsX, BSD 5 and latest Ubuntu
without issue.  And it is under 10 lines of script, subtracting the source
file list.  More importantly, anyone who can program just about any real
language, can read the code without issue.  CMake scripts are quirky
bastards last time I tried to do anything with them beyond a simple file
list.

Sorry, I really do feel pretty strongly in the negative on CMake, love the
idea, HATE the "language" with a serious passion.

KB

> -----Original Message-----
> From: zeromq-dev-bounces at lists.zeromq.org [mailto:zeromq-dev-
> bounces at lists.zeromq.org] On Behalf Of Steven McCoy
> Sent: Monday, October 18, 2010 9:26 PM
> To: zeromq-dev at lists.zeromq.org
> Subject: [zeromq-dev] CMake adequacy
> 
> An interesting compromise out of the libjpeg-turbo team, use Autoconf on
> Unix and CMake on Windows:
> 
> http://sourceforge.net/mailarchive/forum.php?thread_name=20101015101132.GA
> 6167%40traged.englab.brq.redhat.com&forum_name=tigervnc-devel
> 
> --
> Steve-o




More information about the zeromq-dev mailing list