[nanomsg] Re: Release packaging and build systems

  • From: Martin Sustrik <sustrik@xxxxxxxxxx>
  • To: nanomsg@xxxxxxxxxxxxx
  • Date: Thu, 25 Jul 2013 10:01:59 +0200

On 25/07/13 09:54, Dirkjan Ochtman wrote:
On Thu, Jul 25, 2013 at 9:43 AM, Martin Sustrik<sustrik@xxxxxxxxxx>  wrote:
A.) The furthest we can possibly go is maintaining MSVC solution files as we
did with ZeroMQ. The problem here is twofold. First, MSVC solutions are
managed via GUI :( Second, every version of MSVC has different solution file
format, so we would have to maintain multiple versions of the solution
files.

B.) If that seems excessive we can provide a way to *generate* MSVC solution
files. That way the Windows developer can learn just the generation part of
the toolchain and continue with MSVC IDE as normal.

C.) We can be even less forthcoming and drop MSVC support entirely. In such
case Windows nanomsg developers would have to learn MinGW toolchain. The
upside would be maintaining just a single build system.

Thoughts anyone?

Seems to me that both A and C suck. So I think I'm with Luca in saying
that it probably makes sense to have both CMake and autotools build
systems and keep them in sync by hand (given the premise that this
shouldn't be too hard).

Maintaining two build systems sucks, but it sucks less than the alternatives.

That's my feeling as well.

If anyone feels in a different way, please do say so now.

That being said, if we are going to pursue option B, we can use autotools as a primary build system and use cmake just as a generator of MSVC solution files. That in turn would make it possible to remove most of the stuff from cmake scripts (no need for feature checking etc.) and even merge the whole cmake build system into a single CMakeLists.txt file. That should make maintaing the second build system as painless as possible.

Martin

Other related posts: