[
https://issues.apache.org/jira/browse/ZOOKEEPER-2756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15968364#comment-15968364
]
Andrew Schwartzmeyer commented on ZOOKEEPER-2756:
-------------------------------------------------
The attached patch is what we'll be using for Mesos.
{quote}
Port build system to CMake.
This notably lacks Solaris and libtool support.
Almost everything else from Autotools has been ported,
including header/function/library checks, and all targets
(zookeeper, hashtable, cli, load_gen, and tests).
Both Linux and Windows are supported.
While `load_gen.c` looks at first glance as if it were ported to Windows,
it never actually was, so the erroneous `#include "win32port.h"` was
removed, and the target is not built on Windows.
There are existent warnings which this patch did not attempt to fix,
save a few easy ones.
Some changes to `winconfig.h` necessary to build with Visual Studio 2015
(and 2017) were included; these originally came from a patch embedded
inside the Mesos build process.
Final application of this patch should likely split these changes into a
few commits.
{quote}
> Add CMake build system for better cross-platform support
> --------------------------------------------------------
>
> Key: ZOOKEEPER-2756
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2756
> Project: ZooKeeper
> Issue Type: Improvement
> Components: build, c client
> Affects Versions: 3.5.2
> Environment: Windows and Linux
> Reporter: Andrew Schwartzmeyer
> Labels: build, windows
> Attachments: ZOOKEEPER-2756.patch
>
>
> The C bindings primary build system is Autotools. This obviously does not
> work for Windows, and so the original port to Windows simply added a Visual
> Studio solution to the project, splitting the build system. As new versions
> of Visual Studio have come along, new (probably auto-converted) solutions
> have come along (see zookeeper.sln vs zookeeper-vs2013.sln). When Mesos
> started being ported to Windows, a Visual Studio 2015 solution was needed,
> and the previous developer created yet another solution, and setup Mesos'
> build to patch ZooKeeper and add the 2015 solution. Now Visual Studio 2017
> was released, and in the process of moving Mesos ahead, I realized that I
> would either have to make *yet another* converted solution for ZooKeeper. So
> instead I tackled the root problem, and ported the Autotools build to CMake,
> which is a meta-build system which generates files for the in-use platform
> (whether it be Linux or Solaris or MacOS or Windows).
> NOTE: I already have this patch, and will submit it. It has a couple TODOs,
> and some other things in it that were necessary for Mesos that may need to be
> pulled into separate patches.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)