Subject: Re: Release coming up!

Re: Release coming up!

From: Brad House via c-ares <c-ares_at_cool.haxx.se>
Date: Fri, 23 Sep 2016 17:47:09 -0400

On 09/23/2016 05:35 PM, Daniel Stenberg wrote:
> On Fri, 23 Sep 2016, Brad House via c-ares wrote:
>
>> I'd like to re-open the discussion of the last patch I sent via this mailing list: "[PATCH] remove configure-time type size checks"
>>
>> This fixes multi-arch building for iOS and MacOSX (without requiring separate builds and using lipo to join them), and has been tested across a large number of platforms.
>
> Was that patch complete? I thought we still had some missing pieces. Please, bring it back up and let's make sure we iron out any left wrinkles. I'd like to see those configure-time checks removed as well.

As far as I'm aware it was complete, I was asking for review to ensure someone else didn't
see a bug with my changes, but there are no "hanging chads" in the implementation as far
as I'm aware.

>
>> If that patch is accepted, then I'd also like to re-proprose my CMake build system for c-ares as well. I do have some slight tweaks/fixes for some platforms (like iOS), as well as it being compatible with the aforementioned type size check patch.
>
> I'm torn on cmake.
>
> I personally feel completely lost with it and I experience that it takes me much more time and effort to get anything done with it than autotools. Of course this is mostly because I've written autoconf checks for almost 20 years. But I also feel that in general we find fewer people with cmake skills
> than autoconf skills so I've seen the cmake build lag in maintenance in other projects I spend time in. Does cmake support all those old legacy unixes to the same extent configure scripts do?

No, CMake definitely drops basically all legacy support. I left a lot of detections in there
for things that are for platforms that I'm sure Cmake does not and will never run on since I
modelled it off the autotools scripts ... but if someone does ever port Cmake to those platforms,
the CMake build script I wrote is ready for it.

I personally find CMake easier to work with (having worked with autotools myself since about 2002),
but it is its own beast for sure, it took a while to get comfortable with. I find CMake has better
support for current platforms (especially windows), and you can do more with less. If you look at
just the size of the CMake script I wrote, and compare it to the autoconf script (remember, you have
a bunch of m4 includes, you've gotta count those!), you'll see its super tiny for the same functionality.

>
> Then again, the c-ares configure script is fairly simple and is probably an ideal candidate for replacing with cmake.

I'd say it is far from simple, but most of the "hard" stuff is hidden in the m4 includes.

> I would like to propose that we start out with merging cmake build support in parallel to the existing build scripts so that we all can get a feel for both and help out making the cmake get up to par with the autoconf based one and then at some point in the future when we think they're roughly equal
> in what they support we can decide to drop the autoconf version.
>
> I would also *love* to hear what others have to say about this!

I definitely was not proposing dropping the autotools version. The CMake stuff is fairly easy to
maintain, I think parallel is the way to go, just like you have parallel systems in place, for, say
MSVC nmake (ok, well, I'd say drop-kick that one and use CMake's generator instead).

-Brad
Received on 2016-09-23