gpsd-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gpsd-dev] cmake: (was: Re: [PATCH]: Link Python extensions with lib


From: Bernd Zeimetz
Subject: Re: [gpsd-dev] cmake: (was: Re: [PATCH]: Link Python extensions with libpython - attempt 3)
Date: Wed, 14 Jan 2015 10:02:20 +0100
User-agent: Roundcube Webmail/0.9.5

On 13.01.2015 17:29, Eric S. Raymond wrote:
Greg Troxel <address@hidden>:
I wonder (a tiny bit) about switching to cmake

I took a hard look at cmake when I was working on Battle For Wesnoth and
it became clear than autotools was too horrible to live with.  I was
also evaluating waf and SCons at the time

There are a bunch of minor problems with cmake.  It's what I think of
as a German-style design, which is to say careful and precisely
engineered and well documented - but also fussy, overcomplex, and if
you wander outside the use cases the designers imagined you are
*doomed*.

So where is the problem here? You read the documentation, learn what
it supports (which is far far far more than you need for gpsd) and
how to use that.
Or, if you really need to, create a cmake module for your needs.

Like autotools and unlike Scons and waf, cmake is a two-level system.
cmake recipes generate makefiles rather than being directly
interpreted as build instructions.

This was the showstopper.  Two-level build recipes are a stone bitch
to debug, because the breakage happens in generated code which does
not necessarily have any obvious relationship to whatever part
of your recipe was actually wrong.

There is no need to do so unless you are writing your own modules.
cmake fortunately just works very well. And in the worst case there
are debug and trace options....


Overall I'd call cmake a thoughtful implementation of a design concept
(build by cleverly generated makefiles) that is fundamentally wrong and
should die with autotoools.

So you think c-preprocessors and similar things should die, too?
Just because you are not able to learn and use a build system the way
the build system needs to be used - but instead trying to force your own
way of coding into the build system - you run into various problems
only you have because you want to abuse the build system.

Even autotools and libtool would work well if you'd know how to use
libtool to debug built files.


The mess in SConstruct is worse than a hand written Makefile.
It is a major waste of time to debug issues.
And you run into varois issues you would never run into if the
build-system would be something well established and well working.


I'm still considering to stop maintaining gpsd because of all the
"fun" I had with scons. Never ever run into such a big piece of crap
during the last 19 years of working with open source software.
Even a pretty new libtool on solaris was less pain.


--
 Bernd Zeimetz                            Debian GNU/Linux Developer
 http://bzed.de                                http://www.debian.org
 GPG Fingerprint: ECA1 E3F2 8E11 2432 D485  DD95 EB36 171A 6FF9 435F



reply via email to

[Prev in Thread] Current Thread [Next in Thread]