You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by jo...@apache.org on 2015/09/28 01:27:50 UTC

[11/20] mesos git commit: CMake: Integrated libevent into Windows builds.

CMake: Integrated libevent into Windows builds.

Since there is no robust standalone libev support on Windows, Mesos will
need to use libevent to support Windows, at least in the short term.

This commit will add logic to configure, build, and install libevent for
all Windows builds.

Review: https://reviews.apache.org/r/38550


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/403d74ad
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/403d74ad
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/403d74ad

Branch: refs/heads/master
Commit: 403d74ade891ce288e3c7927a7c37fabe724f271
Parents: e9c64fb
Author: Alex Clemmer <cl...@gmail.com>
Authored: Sun Sep 27 15:41:26 2015 -0700
Committer: Joris Van Remoortere <jo...@gmail.com>
Committed: Sun Sep 27 16:14:28 2015 -0700

----------------------------------------------------------------------
 3rdparty/libprocess/3rdparty/CMakeLists.txt     | 42 ++++++++++++--------
 .../libprocess/cmake/ProcessConfigure.cmake     |  1 +
 2 files changed, 27 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/403d74ad/3rdparty/libprocess/3rdparty/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/CMakeLists.txt b/3rdparty/libprocess/3rdparty/CMakeLists.txt
index 4f439fa..0963222 100644
--- a/3rdparty/libprocess/3rdparty/CMakeLists.txt
+++ b/3rdparty/libprocess/3rdparty/CMakeLists.txt
@@ -37,6 +37,10 @@ else (REBUNDLED)
   set(LIBEV_URL       ${UPSTREAM_URL}/libev-${LIBEV_VERSION}.tar.gz)
 endif (REBUNDLED)
 
+# NOTE: libevent doesn't come rebundled, so this URL is always the same. But,
+# it's only downloaded if `ENABLE_LIBEVENT` is set.
+set(LIBEVENT_URL ${UPSTREAM_URL}/libevent-release-${LIBEVENT_VERSION}.tar.gz)
+
 if (WIN32)
   # TODO(hausdorff): (MESOS-3394) Upgrade Windows to use glog v0.3.5, as that
   # release will contain fixes that will allow us to build glog on Windows.
@@ -58,9 +62,8 @@ if (WIN32)
   # (as well as all the other third-party dependencies) on MSVC 1900.
   #
   # [1] https://github.com/google/glog/pull/43
-  set(GLOG_URL https://github.com/hausdorff/glog/tarball/glog-${GLOG_VERSION}-msvc1900)
-
-  set(CURL_URL ${UPSTREAM_URL}/curl-static-${CURL_VERSION}.tar.gz)
+  set(GLOG_URL     https://github.com/hausdorff/glog/tarball/glog-${GLOG_VERSION}-msvc1900)
+  set(CURL_URL     ${UPSTREAM_URL}/curl-static-${CURL_VERSION}.tar.gz)
 endif (WIN32)
 
 # Define build/patch/configure commands for third-party libs.
@@ -116,10 +119,7 @@ elseif (WIN32)
   set(RY_BUILD_CMD   ${CMAKE_NOOP})
   set(RY_INSTALL_CMD ${CMAKE_NOOP})
 
-  set(LIBEV_PATCH_CMD    ${CMAKE_NOOP})
-  set(LIBEV_CONFIG_CMD   ${CMAKE_NOOP})
-  set(LIBEV_BUILD_CMD    ${CMAKE_NOOP})
-  set(LIBEV_INSTALL_CMD  ${CMAKE_NOOP})
+  set(LIBEVENT_INSTALL_CMD ${CMAKE_NOOP})
 endif (NOT WIN32)
 
 # Third-party libraries. Tell the build system how to pull in and build third-
@@ -163,15 +163,25 @@ ExternalProject_Add(
   URL               ${HTTP_PARSER_URL}
   )
 
-ExternalProject_Add(
-  ${LIBEV_TARGET}
-  PREFIX            ${LIBEV_CMAKE_ROOT}
-  PATCH_COMMAND     ${LIBEV_PATCH_CMD}
-  CONFIGURE_COMMAND ${LIBEV_CONFIG_CMD}
-  BUILD_COMMAND     ${LIBEV_BUILD_CMD}
-  INSTALL_COMMAND   ${LIBEV_INSTALL_CMD}
-  URL               ${LIBEV_URL}
-  )
+if (NOT ENABLE_LIBEVENT)
+  ExternalProject_Add(
+    ${LIBEV_TARGET}
+    PREFIX            ${LIBEV_CMAKE_ROOT}
+    PATCH_COMMAND     ${LIBEV_PATCH_CMD}
+    CONFIGURE_COMMAND ${LIBEV_CONFIG_CMD}
+    BUILD_COMMAND     ${LIBEV_BUILD_CMD}
+    INSTALL_COMMAND   ${LIBEV_INSTALL_CMD}
+    URL               ${LIBEV_URL}
+    )
+elseif (ENABLE_LIBEVENT)
+  ExternalProject_Add(
+    ${LIBEVENT_TARGET}
+    PREFIX          ${LIBEVENT_CMAKE_ROOT}
+    CMAKE_ARGS      -LH -DEVENT__DISABLE_OPENSSL=TRUE
+    INSTALL_COMMAND ${LIBEVENT_INSTALL_CMD}
+    URL             ${LIBEVENT_URL}
+    )
+endif (NOT ENABLE_LIBEVENT)
 
 # WINDOWS THIRD-PARTY LIBRARIES. Windows has no package manager, so we download
 # them here.

http://git-wip-us.apache.org/repos/asf/mesos/blob/403d74ad/3rdparty/libprocess/cmake/ProcessConfigure.cmake
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/cmake/ProcessConfigure.cmake b/3rdparty/libprocess/cmake/ProcessConfigure.cmake
index 8c89cd7..1467c97 100755
--- a/3rdparty/libprocess/cmake/ProcessConfigure.cmake
+++ b/3rdparty/libprocess/cmake/ProcessConfigure.cmake
@@ -55,6 +55,7 @@ EXTERNAL("boost"       ${BOOST_VERSION}       "${PROCESS_3RD_BIN}")
 EXTERNAL("picojson"    ${PICOJSON_VERSION}    "${PROCESS_3RD_BIN}")
 EXTERNAL("http_parser" ${HTTP_PARSER_VERSION} "${PROCESS_3RD_BIN}")
 EXTERNAL("libev"       ${LIBEV_VERSION}       "${PROCESS_3RD_BIN}")
+EXTERNAL("libevent"    ${LIBEVENT_VERSION}    "${PROCESS_3RD_BIN}")
 
 if (NOT WIN32)
   EXTERNAL("glog" ${GLOG_VERSION} "${PROCESS_3RD_BIN}")