[geos-devel] RFC7 - Use CMake as build system for GEOS

Greg Troxel gdt at lexort.com
Thu Oct 4 05:25:46 PDT 2018


Sebastiaan Couwenberg <sebastic at xs4all.nl> writes:

> On 10/4/18 4:39 AM, Regina Obe wrote:
>>> pkgsrc is using autoconf.   I have had far more problems with cmake over
>>> time than with autoconf.
>>>
>> 
>> But you do use CMake for some things right?
>> 
>> I presume Debian and CentOS packagers already use CMake because they ship pgRouting and pgRouting only supports CMake.
>> Does CGAL support autotools?  I've never tried since I always went for the CMake.
>
> Debian packaging tools also support CMake.

pkgsrc does too.  Basically it is well more than prevalent enough that
packaging systems esentially have to.

> For the geos package autotools is used because that's the official
> buildsystem and on Linux superior to CMake. E.g. libtool does the right
> thing with library versioning.

I have never tried geos cmake, but my broad experience over the years is
that autotools-based systems almost entirely work correctly and
cmake-based systems are more troubled.

> I would prefer if geos kept autotools as the default buildsystem for
> Linux, using CMake for Windows and other systems is fine with me.

Seconded, except I would say default on "systems conforming to POSIX"
rather than just Linux.

>> When I was packaging 3.7.0 I spent 20% of my time cursing because
>> there was this autotools configure thing, CMake make lists, and I
>> think even NMake or some such thing
>> That all needed changing just to get a stupid version number in place.

Do you mean changing one number in one line in configure.ac, and one
line in some cmake file?

>> The problem with that thinking is that it HAS HAD low rate of building system changes
>> This I'm pretty sure will change in 3.8.  Both Dan and Vicky have huge plans for improving GEOS
>> Which means we are going to have to add a ton more tests to the GEOS suite to ensure we don't break things.
>> 
>> This will become very time consuming if we have to test against autotools and CMake.

It seems that the downside of two is adding each test file in two
places, and this seems tiny compared to writing and testing a test file.

>> I'm not sure if it's true for other people, or if it's just because I'm working on a Handicapped platform
>> But for me even when autotools WAS working GEOS compiled way faster under CMake than it did under autotools.

Try compiling cmake too.  On some systems I test on it takes hours to
build cmake.

>> If that is true for others, those cycles make a big difference for development.

If you have just changed source files and rebuild, you just run make.
If you are doing a full regression test, then it does more.


More information about the geos-devel mailing list