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 2016/03/01 19:29:58 UTC
[02/11] mesos git commit: CMake:[3/4] Transitioned to
static-everything builds on Windows.
CMake:[3/4] Transitioned to static-everything builds on Windows.
Review: https://reviews.apache.org/r/43694/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/839829ad
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/839829ad
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/839829ad
Branch: refs/heads/master
Commit: 839829adcd4ab225e4c07fc77281ae6daf5b1cc2
Parents: e042e80
Author: Alex Clemmer <cl...@gmail.com>
Authored: Tue Mar 1 10:01:09 2016 -0800
Committer: Joris Van Remoortere <jo...@gmail.com>
Committed: Tue Mar 1 10:25:34 2016 -0800
----------------------------------------------------------------------
3rdparty/libprocess/3rdparty/CMakeLists.txt | 20 ++++++++------------
.../http-parser/CMakeLists.txt.template | 2 +-
.../cmake/Process3rdpartyConfigure.cmake | 15 ++++++++-------
.../libprocess/cmake/ProcessConfigure.cmake | 9 +++++++--
.../cmake/ProcessTestsConfigure.cmake | 4 ++++
3rdparty/libprocess/src/CMakeLists.txt | 11 ++++++++++-
6 files changed, 38 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/839829ad/3rdparty/libprocess/3rdparty/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/CMakeLists.txt b/3rdparty/libprocess/3rdparty/CMakeLists.txt
index 2b2da5b..ad979e5 100644
--- a/3rdparty/libprocess/3rdparty/CMakeLists.txt
+++ b/3rdparty/libprocess/3rdparty/CMakeLists.txt
@@ -54,7 +54,7 @@ if (WIN32)
#
# [1] https://github.com/google/glog/pull/43
set(GLOG_URL ${UPSTREAM_URL}/glog-v0.3.4-g4d391fe.tar.gz)
- set(CURL_URL ${UPSTREAM_URL}/curl-static-${CURL_VERSION}.tar.gz)
+ set(CURL_URL ${UPSTREAM_URL}/curl-${CURL_VERSION}.tar.gz)
set(LIBAPR_URL ${UPSTREAM_URL}/libapr-${LIBAPR_VERSION}.tar.gz)
endif (WIN32)
@@ -200,6 +200,7 @@ if (WIN32)
ExternalProject_Add(
${LIBAPR_TARGET}
PREFIX ${LIBAPR_CMAKE_ROOT}
+ CMAKE_ARGS -DBUILD_SHARED_LIBS=OFF
INSTALL_COMMAND ${LIBAPR_INSTALL_CMD}
URL ${LIBAPR_URL}
)
@@ -213,9 +214,9 @@ if (WIN32)
ExternalProject_Add(
${CURL_TARGET}
PREFIX ${CURL_CMAKE_ROOT}
+ CMAKE_ARGS -DBUILD_CURL_TESTS=OFF -DCURL_STATICLIB=ON -DCMAKE_C_FLAGS_DEBUG="/MTd"
PATCH_COMMAND ${CMAKE_NOOP}
- CONFIGURE_COMMAND ${CMAKE_NOOP}
- BUILD_COMMAND ${CMAKE_NOOP}
+ BUILD_COMMAND msbuild /p:RuntimeLibrary=MT_StaticDebug lib/libcurl.vcxproj
INSTALL_COMMAND ${CMAKE_NOOP}
URL ${CURL_URL}
)
@@ -236,7 +237,7 @@ if (WIN32)
# library that compiles on Windows. We need to either send this as a PR back
# to the protobuf project, or we need to apply these changes to our existing
# protobuf tarball in the patch step.
- set(PROTOBUF_URL ${UPSTREAM_URL}/protobuf-${PROTOBUF_VERSION}-msvc1900.tar.gz)
+ set(PROTOBUF_URL ${UPSTREAM_URL}/protobuf-3.0.0-beta-2.tar.gz)
endif (WIN32)
# NOTE: `gmock` is "installed" into a lib directory, see "NOTE: (fix for
@@ -253,15 +254,9 @@ if (NOT WIN32)
set(PROTOBUF_BUILD_CMD make)
set(PROTOBUF_INSTALL_CMD make install)
elseif (WIN32)
- set(PROTOBUF_PATCH_CMD ${CMAKE_NOOP})
- set(PROTOBUF_CONFIG_CMD ${CMAKE_NOOP})
+ set(PROTOBUF_CONFIG_CMD cmake -G "Visual Studio 14 2015 Win64" ../protobuf-${PROTOBUF_VERSION}/cmake -DBUILD_SHARED_LIBS=OFF -Dprotobuf_MSVC_STATIC_RUNTIME=ON -Dprotobuf_BUILD_TESTS=OFF)
+ set(PROTOBUF_BUILD_CMD msbuild protobuf.sln)
set(PROTOBUF_INSTALL_CMD ${CMAKE_NOOP})
- VS_BUILD_CMD(
- PROTOBUF
- ${PROTOBUF_ROOT}/vsprojects/protobuf.sln
- ${CMAKE_BUILD_TYPE}
- ${PROTOBUF_ROOT}/vsprojects
- "libprotobuf libprotoc protoc")
endif (NOT WIN32)
# NOTE: An implicit consequence of the following code is that on non-Windows
@@ -283,6 +278,7 @@ ExternalProject_Add(
ExternalProject_Add(
${PROTOBUF_TARGET}
PREFIX ${PROTOBUF_CMAKE_ROOT}
+ CMAKE_ARGS -DBUILD_SHARED_LIBS=${BUILD_SHARED_LIBS} -DCMAKE_CXX_FLAGS_DEBUG="/MTd"
PATCH_COMMAND ${PROTOBUF_PATCH_CMD}
CONFIGURE_COMMAND ${PROTOBUF_CONFIG_CMD}
BUILD_COMMAND ${PROTOBUF_BUILD_CMD}
http://git-wip-us.apache.org/repos/asf/mesos/blob/839829ad/3rdparty/libprocess/3rdparty/http-parser/CMakeLists.txt.template
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/http-parser/CMakeLists.txt.template b/3rdparty/libprocess/3rdparty/http-parser/CMakeLists.txt.template
index bf2aa38..056a1c1 100644
--- a/3rdparty/libprocess/3rdparty/http-parser/CMakeLists.txt.template
+++ b/3rdparty/libprocess/3rdparty/http-parser/CMakeLists.txt.template
@@ -31,4 +31,4 @@ set(HTTP_PARSER_SRC
http_parser.h
)
-add_library(http_parser ${HTTP_PARSER_SRC})
+add_library(http_parser STATIC ${HTTP_PARSER_SRC})
http://git-wip-us.apache.org/repos/asf/mesos/blob/839829ad/3rdparty/libprocess/cmake/Process3rdpartyConfigure.cmake
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/cmake/Process3rdpartyConfigure.cmake b/3rdparty/libprocess/cmake/Process3rdpartyConfigure.cmake
index 5db49b0..167b599 100644
--- a/3rdparty/libprocess/cmake/Process3rdpartyConfigure.cmake
+++ b/3rdparty/libprocess/cmake/Process3rdpartyConfigure.cmake
@@ -36,8 +36,9 @@ elseif (WIN32)
# require 0.3.4.
EXTERNAL("glog" "0.3.4" "${PROCESS_3RD_BIN}")
- # NOTE: We expect cURL exists on Unix (usually pulled in with a package
- # manager), but Windows has no package manager, so we have to go get it.
+ # NOTE: We expect cURL and zlib exist on Unix (usually pulled in with a
+ # package manager), but Windows has no package manager, so we have to go
+ # get it.
EXTERNAL("curl" ${CURL_VERSION} "${PROCESS_3RD_BIN}")
endif (NOT WIN32)
@@ -75,10 +76,10 @@ set(LIBEV_LIB_DIR ${LIBEV_ROOT}-build/.libs)
if (WIN32)
set(HTTP_PARSER_LIB_DIR ${HTTP_PARSER_ROOT}-build/${CMAKE_BUILD_TYPE})
- set(CURL_LIB_DIR ${CURL_ROOT}/lib)
+ set(CURL_LIB_DIR ${CURL_ROOT}-build/lib/${CMAKE_BUILD_TYPE})
set(GLOG_LIB_DIR ${GLOG_ROOT}-build/${CMAKE_BUILD_TYPE})
set(LIBEVENT_LIB_DIR ${LIBEVENT_ROOT}-build/lib)
- set(PROTOBUF_LIB_DIR ${PROTOBUF_ROOT}/vsprojects/${CMAKE_BUILD_TYPE})
+ set(PROTOBUF_LIB_DIR ${PROTOBUF_ROOT}-build/${CMAKE_BUILD_TYPE})
else (WIN32)
set(HTTP_PARSER_LIB_DIR ${HTTP_PARSER_ROOT}-build)
set(GLOG_LIB_DIR ${GLOG_LIB_ROOT}/lib)
@@ -99,8 +100,8 @@ if (WIN32)
# and on Windows it should be curl.lib. But on Windows, it's actually
# libcurl.lib. Hence, we have to special case it here because CMake assumes
# the library names are generated correctly.
- set(CURL_LFLAG libcurl_a)
- set(PROTOBUF_LFLAG libprotobuf)
+ set(CURL_LFLAG libcurl)
+ set(PROTOBUF_LFLAG libprotobufd)
else (WIN32)
set(CURL_LFLAG curl)
set(DL_LFLAG dl)
@@ -112,7 +113,7 @@ endif (WIN32)
if (NOT WIN32)
set(PROTOC ${PROTOBUF_LIB_ROOT}/bin/protoc)
else (NOT WIN32)
- set(PROTOC ${PROTOBUF_ROOT}/vsprojects/${CMAKE_BUILD_TYPE}/protoc.exe)
+ set(PROTOC ${PROTOBUF_ROOT}-build/${CMAKE_BUILD_TYPE}/protoc.exe)
endif (NOT WIN32)
# Configure the process library, the last of our third-party libraries.
http://git-wip-us.apache.org/repos/asf/mesos/blob/839829ad/3rdparty/libprocess/cmake/ProcessConfigure.cmake
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/cmake/ProcessConfigure.cmake b/3rdparty/libprocess/cmake/ProcessConfigure.cmake
index 2a37fdb..6b804cd 100755
--- a/3rdparty/libprocess/cmake/ProcessConfigure.cmake
+++ b/3rdparty/libprocess/cmake/ProcessConfigure.cmake
@@ -121,7 +121,6 @@ find_package(Threads REQUIRED)
set(PROCESS_LIBS
${PROCESS_LIBS}
- ${PROCESS_TARGET}
${GLOG_LFLAG}
${HTTP_PARSER_LFLAG}
${CMAKE_THREAD_LIBS_INIT}
@@ -134,7 +133,12 @@ elseif (ENABLE_LIBEVENT)
endif (NOT ENABLE_LIBEVENT)
if (WIN32)
- set(PROCESS_LIBS ${PROCESS_LIBS} ${CURL_LFLAG})
+ set(PROCESS_LIBS
+ ${PROCESS_LIBS}
+ ${CURL_LFLAG}
+ ws2_32
+ Mswsock
+ )
elseif (NOT WIN32)
find_package(ZLIB REQUIRED)
@@ -149,5 +153,6 @@ elseif (NOT WIN32)
set(PROCESS_LIBS
${PROCESS_LIBS}
${ZLIB_LIBRARIES}
+ pthread
)
endif (WIN32)
http://git-wip-us.apache.org/repos/asf/mesos/blob/839829ad/3rdparty/libprocess/cmake/ProcessTestsConfigure.cmake
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/cmake/ProcessTestsConfigure.cmake b/3rdparty/libprocess/cmake/ProcessTestsConfigure.cmake
index 3a2e099..83afd25 100644
--- a/3rdparty/libprocess/cmake/ProcessTestsConfigure.cmake
+++ b/3rdparty/libprocess/cmake/ProcessTestsConfigure.cmake
@@ -75,6 +75,7 @@ endif (APPLE)
set(PROCESS_TEST_DEPENDENCIES
${PROCESS_TEST_DEPENDENCIES}
${PROCESS_DEPENDENCIES}
+ ${PROCESS_TARGET}
${GMOCK_TARGET}
)
@@ -97,6 +98,8 @@ set(PROCESS_TEST_INCLUDE_DIRS
set(PROCESS_TEST_LIB_DIRS
${PROCESS_TEST_LIB_DIRS}
${PROCESS_LIB_DIRS}
+ ${CMAKE_CURRENT_BINARY_DIR}/.. # libprocess directory.
+
${GMOCK_LIB_DIR}
${GTEST_LIB_DIR}
)
@@ -106,6 +109,7 @@ set(PROCESS_TEST_LIB_DIRS
#########################################################################
set(PROCESS_TEST_LIBS
${PROCESS_TEST_LIBS}
+ ${PROCESS_TARGET}
${PROCESS_LIBS}
${GMOCK_LFLAG}
${GTEST_LFLAG}
http://git-wip-us.apache.org/repos/asf/mesos/blob/839829ad/3rdparty/libprocess/src/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/CMakeLists.txt b/3rdparty/libprocess/src/CMakeLists.txt
index 12dfaf6..a8379d3 100644
--- a/3rdparty/libprocess/src/CMakeLists.txt
+++ b/3rdparty/libprocess/src/CMakeLists.txt
@@ -67,12 +67,21 @@ endif (ENABLE_LIBEVENT)
###########################################################################
include_directories(${PROCESS_INCLUDE_DIRS})
+# LINKING LIBRARIES BY DIRECTORY (might generate, e.g., -L/path/to/thing on
+# Linux).
+###########################################################################
+link_directories(${PROCESS_LIB_DIRS})
+
# THE PROCESS LIBRARY (generates, e.g., libprocess.so, etc., on Linux).
#######################################################################
-add_library(${PROCESS_TARGET} ${PROCESS_SRC})
+add_library(${PROCESS_TARGET} STATIC ${PROCESS_SRC})
set_target_properties(
${PROCESS_TARGET} PROPERTIES
VERSION ${PROCESS_PACKAGE_VERSION}
SOVERSION ${PROCESS_PACKAGE_SOVERSION}
)
add_dependencies(${PROCESS_TARGET} ${PROCESS_DEPENDENCIES})
+
+# ADD LINKER FLAGS (generates, e.g., -lglog on Linux).
+######################################################
+target_link_libraries(${PROCESS_TARGET} ${PROCESS_LIBS})