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

Regina Obe lr at pcorp.us
Thu Oct 4 06:58:23 PDT 2018


> > 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.

[Regina Obe] 
Okay seems pretty clear we can't get rid of autotools, at least not for a while.
And as Vicky pointed out the CMake setup in GEOS is kinda old and needs to be reworked of which Dan did a bit of already.

I think though it is used by more than just Windows builds.  
As Vicky mentioned to me, she doesn't even have autotools installed and she has an Ubuntu desktop.
She knows nothing about autotools and would rather use CMake if she needs to setup tests.
-- Vicky sorry for putting words into your mouth :)

> 
> >> 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?
> 

[Regina Obe] 
Yes and another line in some other file.  There might be a way to resolve this.
It just made me mad I had to do this in 3 different places.


> >> 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.
> 
> 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.

[Regina Obe] 
Well I kinda have to run full regression.  
 I know the compile itself is much slower and I like to start with a clean compile each time.

The tests it's hard to tell if it's just that CMake is testing less or if it is faster in testing.

Our autotools tests also seem more cryptic to me when they error out, as I recall I get something stupid like

100 PASS, 2 FAIL  without any detail about what unless I go to the log file and make sense of it.

The CMake ones are broken out into sections so easier to see what failed.

Anyrate I think the above is just my inexperience combined with different setup of CMake/Autotools
And not really a CMake is better than Autotools per se.  I'm sure autotools testing can be made as nice as it is pretty nice in PostGIS :)

Funny how I'm arguing CMake here and on PostGIS, I'd say - never, use mingw64 if you wanna build PostGIS for windows
despite people coming on every once in a while pushing Cmake.

I'd be happy if we can somehow come up with some method of sharing tests
between CMake and Autotools - which I think we can.

Much of the frustration I think why we are even having this discussion is the fact that we have separate tests for each and I don't think it has to be that way
Developers these days also seem more passionate about CMake than autotools and since they are the ones giving the patches, I'd like to continue supporting CMake
And stop telling people it's experimental.

-- strk if you had fixed autotools like I yelled at you a couple of years ago, I'd probably be on the autotools side :)
I think my issue with autotools is along the line of what Greg mentioned with NetBSD.  I get stupid cryptic notes about my 64-bitness 
because I'm not using Linux even though I am building with a Posix based system.


Thanks,
Regina

 



More information about the geos-devel mailing list