You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@zookeeper.apache.org by "Andrew Schwartzmeyer (JIRA)" <ji...@apache.org> on 2017/04/13 23:05:41 UTC

[jira] [Comment Edited] (ZOOKEEPER-2756) Add CMake build system for better cross-platform support

    [ https://issues.apache.org/jira/browse/ZOOKEEPER-2756?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15968303#comment-15968303 ] 

Andrew Schwartzmeyer edited comment on ZOOKEEPER-2756 at 4/13/17 11:05 PM:
---------------------------------------------------------------------------

Current work-in-progress patch is located at: https://github.com/andschwa/zookeeper/tree/cmake-3.5.2

This was specifically cherry-picked from on top of master to the latest release we're pulling into ZooKeeper.

Open question: do we delete the deprecated Visual Studio solutions in the same patch? They're unmaintainable and should be removed.

For discussion: eventual deprecation of Autotools in favor of CMake (which is what we're slowly working toward in Mesos).


was (Author: andschwa):
Current work-in-progress patch is located at: https://github.com/andschwa/zookeeper/tree/cmake-3.5.2

This was specifically cherry-picked from on top of master to the latest release we're pulling into ZooKeeper. I'll attach an actual patch file that can be applied to master, and list the remaining TODO items.

Open question: do we delete the deprecated Visual Studio solutions in the same patch? They're unmaintainable and should be removed.

For discussion: eventual deprecation of Autotools in favor of CMake (which is what we're slowly working toward in Mesos).

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