You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ch...@apache.org on 2018/08/03 20:25:51 UTC
[mesos] branch master updated (72878f8 -> 5bb4245)
This is an automated email from the ASF dual-hosted git repository.
chhsiao pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git.
from 72878f8 Moved around some functions definitions between files.
new 9fb936a Fixed gRPC compilation with Clang when building Mesos.
new deeb3b0 Fixed gRPC compilation for standalone libprocess build with Clang.
new 5d1ca8c Fixed gRPC build for CMake with multi-configuration generators.
new 200ed1d Always build gRPC in libprocess.
new 5bb4245 Always build gRPC in Mesos.
The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
3rdparty/CMakeLists.txt | 216 +++++++++++++--------------
3rdparty/Makefile.am | 14 +-
3rdparty/libprocess/3rdparty/Makefile.am | 14 +-
3rdparty/libprocess/Makefile.am | 28 ++--
3rdparty/libprocess/configure.ac | 96 ++++++------
3rdparty/libprocess/src/CMakeLists.txt | 8 +-
3rdparty/libprocess/src/tests/CMakeLists.txt | 42 +++---
cmake/CompilationConfigure.cmake | 10 --
configure.ac | 92 +++++-------
include/csi/spec.hpp | 4 -
src/CMakeLists.txt | 12 +-
src/Makefile.am | 48 ++----
src/cmake/MesosProtobuf.cmake | 6 +-
src/examples/CMakeLists.txt | 4 +-
src/python/native_common/ext_modules.py.in | 40 +++--
src/resource_provider/local.cpp | 4 +-
src/tests/CMakeLists.txt | 23 +--
17 files changed, 286 insertions(+), 375 deletions(-)
[mesos] 03/05: Fixed gRPC build for CMake with multi-configuration
generators.
Posted by ch...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
chhsiao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 5d1ca8c0cbbcfd837a99828600bdb049410f4dc0
Author: Chun-Hung Hsiao <ch...@mesosphere.io>
AuthorDate: Wed Aug 1 14:42:17 2018 -0700
Fixed gRPC build for CMake with multi-configuration generators.
This patch adds `--config` options to the CMake build commands for gRPC,
so that when building with a multi-configuration generator (e.g., Visual
Studio or XCode), it could pass the specified configuration along.
Review: https://reviews.apache.org/r/68176
---
3rdparty/CMakeLists.txt | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt
index 8300088..2e5d519 100644
--- a/3rdparty/CMakeLists.txt
+++ b/3rdparty/CMakeLists.txt
@@ -1252,10 +1252,10 @@ if (ENABLE_GRPC)
endif ()
set(GRPC_BUILD_CMD
- ${CMAKE_COMMAND} --build . --target gpr &&
- ${CMAKE_COMMAND} --build . --target grpc${GRPC_VARIANT} &&
- ${CMAKE_COMMAND} --build . --target grpc++${GRPC_VARIANT} &&
- ${CMAKE_COMMAND} --build . --target grpc_cpp_plugin)
+ ${CMAKE_COMMAND} --build . --config $<CONFIG> --target gpr &&
+ ${CMAKE_COMMAND} --build . --config $<CONFIG> --target grpc${GRPC_VARIANT} &&
+ ${CMAKE_COMMAND} --build . --config $<CONFIG> --target grpc++${GRPC_VARIANT} &&
+ ${CMAKE_COMMAND} --build . --config $<CONFIG> --target grpc_cpp_plugin)
set_target_properties(
grpc PROPERTIES
[mesos] 02/05: Fixed gRPC compilation for standalone libprocess
build with Clang.
Posted by ch...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
chhsiao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git
commit deeb3b021e2bf3e7bc0c9f7b6a93cdbc249d9708
Author: Chun-Hung Hsiao <ch...@mesosphere.io>
AuthorDate: Wed Aug 1 14:42:17 2018 -0700
Fixed gRPC compilation for standalone libprocess build with Clang.
When compiling gRPC with Clang, there are some array-out-of-bound
warnings due to the use of GLIBC's `__strcmp_cg` macro in the c-ares
library. With `-Werror` on, these warnings would stop gRPC from
compiling. This patch ignores such errors.
Review: https://reviews.apache.org/r/68154
---
3rdparty/libprocess/3rdparty/Makefile.am | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/3rdparty/libprocess/3rdparty/Makefile.am b/3rdparty/libprocess/3rdparty/Makefile.am
index da350b1..a0c7f38 100644
--- a/3rdparty/libprocess/3rdparty/Makefile.am
+++ b/3rdparty/libprocess/3rdparty/Makefile.am
@@ -221,16 +221,20 @@ LIB_GRPC = $(GRPC)/libs/opt/libgrpc++$(GRPC_VARIANT).a \
$(LIB_GRPC): $(GRPC)-build-stamp
-# NOTE: We the include flags through the `CPPFLAGS` environment variable rather
-# than the command line because gRPC uses target-specific assignments to append
-# flags to `CPPFLAGS`, which will be overwritten by command line arguments. See:
+# NOTE: We include flags through the `CPPFLAGS` environment variable rather than
+# the command line because gRPC uses target-specific assignments to append flags
+# to `CPPFLAGS`, which will be overwritten by command line arguments. See:
# https://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html
+#
+# NOTE: We ignore `array-bounds` errors generated by the GLIBC's `__strcmp_cg`
+# macro used in gRPC's c-ares library when compiled with Clang.
$(GRPC)-build-stamp: $(GRPC)-stamp \
$(PROTOBUF)-build-stamp
cd $(GRPC) && \
CPPFLAGS="$(PROTOBUF_INCLUDE_FLAGS) \
$(SSL_INCLUDE_FLAGS) \
- $(ZLIB_INCLUDE_FLAGS)" \
+ $(ZLIB_INCLUDE_FLAGS) \
+ -Wno-array-bounds" \
$(MAKE) $(AM_MAKEFLAGS) \
$(LIB_GRPC:%=$(abs_builddir)/%) \
CC="$(CC)" \
[mesos] 04/05: Always build gRPC in libprocess.
Posted by ch...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
chhsiao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 200ed1d83c80f2c21ba04e25b2248f40c30b234a
Author: Chun-Hung Hsiao <ch...@mesosphere.io>
AuthorDate: Fri Jul 27 12:00:01 2018 -0700
Always build gRPC in libprocess.
Review: https://reviews.apache.org/r/68091
---
3rdparty/libprocess/3rdparty/Makefile.am | 2 -
3rdparty/libprocess/Makefile.am | 28 +++-----
3rdparty/libprocess/configure.ac | 96 +++++++++++++---------------
3rdparty/libprocess/src/CMakeLists.txt | 8 +--
3rdparty/libprocess/src/tests/CMakeLists.txt | 42 ++++++------
5 files changed, 75 insertions(+), 101 deletions(-)
diff --git a/3rdparty/libprocess/3rdparty/Makefile.am b/3rdparty/libprocess/3rdparty/Makefile.am
index a0c7f38..5541419 100644
--- a/3rdparty/libprocess/3rdparty/Makefile.am
+++ b/3rdparty/libprocess/3rdparty/Makefile.am
@@ -209,7 +209,6 @@ PROTOBUF_LINKER_FLAGS = @PROTOBUF_LINKERFLAGS@
PROTOC = @PROTOCOMPILER@
endif
-if ENABLE_GRPC
if !ENABLE_SSL
GRPC_VARIANT = _unsecure
endif
@@ -254,7 +253,6 @@ else
$(GRPC)-build-stamp:
touch $@
endif
-endif
# Convenience library for gmock/gtest.
check_LTLIBRARIES = libgmock.la
diff --git a/3rdparty/libprocess/Makefile.am b/3rdparty/libprocess/Makefile.am
index abf6673..f9d9d06 100644
--- a/3rdparty/libprocess/Makefile.am
+++ b/3rdparty/libprocess/Makefile.am
@@ -113,7 +113,6 @@ $(LIB_GPERFTOOLS): $(GPERFTOOLS)-build-stamp
BUNDLED_DEPS += $(GPERFTOOLS)-build-stamp
endif
-if ENABLE_GRPC
if !ENABLE_SSL
GRPC_VARIANT = _unsecure
endif
@@ -136,7 +135,6 @@ else
LIB_GRPC = -lgrpc++$(GRPC_VARIANT) -lgrpc$(GRPC_VARIANT) -lgpr
GRPC_CPP_PLUGIN = @GRPC_CXX_PLUGIN@
endif
-endif
if WITH_BUNDLED_HTTP_PARSER
HTTP_PARSER_INCLUDE_FLAGS = -I$(HTTP_PARSER)
@@ -204,6 +202,7 @@ libprocess_la_SOURCES = \
src/event_queue.hpp \
src/firewall.cpp \
src/gate.hpp \
+ src/grpc.cpp \
src/gtest_constants.cpp \
src/help.cpp \
src/http.cpp \
@@ -265,11 +264,6 @@ libprocess_la_CPPFLAGS = \
$(STOUT_INCLUDE_FLAGS) \
$(AM_CPPFLAGS)
-if ENABLE_GRPC
-libprocess_la_SOURCES += \
- src/grpc.cpp
-endif
-
if ENABLE_LIBEVENT
libprocess_la_SOURCES += \
src/posix/libevent/libevent.hpp \
@@ -309,6 +303,8 @@ libprocess_tests_SOURCES = \
src/tests/decoder_tests.cpp \
src/tests/encoder_tests.cpp \
src/tests/future_tests.cpp \
+ src/tests/grpc_tests.cpp \
+ src/tests/grpc_tests.proto \
src/tests/http_tests.cpp \
src/tests/io_tests.cpp \
src/tests/limiter_tests.cpp \
@@ -333,6 +329,12 @@ libprocess_tests_SOURCES = \
src/tests/timeseries_tests.cpp \
src/tests/time_tests.cpp
+GRPC_TESTS_PROTOS = \
+ grpc_tests.grpc.pb.cc \
+ grpc_tests.grpc.pb.h \
+ grpc_tests.pb.cc \
+ grpc_tests.pb.h
+
libprocess_tests_CPPFLAGS = \
-I$(srcdir)/src \
$(GMOCK_INCLUDE_FLAGS) \
@@ -345,18 +347,6 @@ libprocess_tests_LDADD = \
$(LIB_PROTOBUF) \
libprocess.la
-if ENABLE_GRPC
-libprocess_tests_SOURCES += \
- src/tests/grpc_tests.cpp \
- src/tests/grpc_tests.proto
-
-GRPC_TESTS_PROTOS = \
- grpc_tests.grpc.pb.cc \
- grpc_tests.grpc.pb.h \
- grpc_tests.pb.cc \
- grpc_tests.pb.h
-endif
-
if ENABLE_SSL
check_PROGRAMS += ssl-client
ssl_client_SOURCES = src/tests/ssl_client.cpp
diff --git a/3rdparty/libprocess/configure.ac b/3rdparty/libprocess/configure.ac
index f125e43..752d5ba 100644
--- a/3rdparty/libprocess/configure.ac
+++ b/3rdparty/libprocess/configure.ac
@@ -105,11 +105,6 @@ AC_ARG_ENABLE([debug],
option won't change them default: no]),
[], [enable_debug=no])
-AC_ARG_ENABLE([grpc],
- AS_HELP_STRING([--enable-grpc],
- [enable grpc support]),
- [], [enable_grpc=no])
-
AC_ARG_ENABLE([install],
AS_HELP_STRING([--enable-install],
[install libprocess]),
@@ -1188,52 +1183,51 @@ location of protobuf used by grpc by providing a prefix path via
LDFLAGS="$LDFLAGS -L${with_grpc}/lib"
fi
-if test "x$enable_grpc" = "xyes"; then
- # Check if user has asked us to use a preinstalled grpc, or if they
- # asked us to ignore all bundled libraries while compiling and linking.
- if test "x$without_bundled_grpc" = "xyes" || \
- test "x$enable_bundled" != "xyes"; then
- # Use the system default prefix if not specified.
- if test -n "`echo $with_grpc`"; then
- GRPCPREFIX="${with_grpc}"
- elif test "x$enable_bundled" != "xyes"; then
- GRPCPREFIX="/usr"
- fi
-
- if test "x$enable_ssl" = "xno"; then
- GRPC_VARIANT="_unsecure"
- fi
-
- # Check if headers and library were located.
- saved_LIBS="$LIBS"
- LIBS="-lgrpc++$GRPC_VARIANT -lgrpc$GRPC_VARIANT -lgpr $LIBS"
- AC_LANG_PUSH([C++])
- AC_CHECK_HEADERS([grpcpp/grpcpp.h],
- [AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([#include <grpcpp/grpcpp.h>],
- [grpc::Version();])],
- [found_grpc=yes],
- [found_grpc=no])],
- [found_grpc=no])
- AC_LANG_POP()
- LIBS="$saved_LIBS"
-
- if test "x$found_grpc" = "xyes"; then
- with_bundled_grpc=no
+# Check if user has asked us to use a preinstalled grpc, or if they
+# asked us to ignore all bundled libraries while compiling and linking.
+if test "x$without_bundled_grpc" = "xyes" || \
+ test "x$enable_bundled" != "xyes"; then
+ # Use the system default prefix if not specified.
+ if test -n "`echo $with_grpc`"; then
+ GRPCPREFIX="${with_grpc}"
+ elif test "x$enable_bundled" != "xyes"; then
+ GRPCPREFIX="/usr"
+ fi
- AC_CHECK_TOOL([GRPC_CXX_PLUGIN_TEST],
- [grpc_cpp_plugin],
- [],
- [$GRPCPREFIX/bin])
+ if test "x$enable_ssl" = "xno"; then
+ GRPC_VARIANT="_unsecure"
+ fi
- if test -z "`echo $GRPC_CXX_PLUGIN_TEST`"; then
- AC_MSG_ERROR([grpc_cpp_plugin not found in PATH])
- fi
+ # Check if headers and library were located.
+ saved_LIBS="$LIBS"
+ LIBS="-lgrpc++$GRPC_VARIANT -lgrpc$GRPC_VARIANT -lgpr $LIBS"
+ AC_LANG_PUSH([C++])
+ AC_CHECK_HEADERS([grpcpp/grpcpp.h],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([#include <grpcpp/grpcpp.h>],
+ [grpc::Version();])],
+ [found_grpc=yes],
+ [found_grpc=no])],
+ [found_grpc=no])
+ AC_LANG_POP()
+ LIBS="$saved_LIBS"
+
+ if test "x$found_grpc" = "xyes"; then
+ with_bundled_grpc=no
+
+ AC_CHECK_TOOL([GRPC_CXX_PLUGIN_TEST],
+ [grpc_cpp_plugin],
+ [],
+ [$GRPCPREFIX/bin])
+
+ if test -z "`echo $GRPC_CXX_PLUGIN_TEST`"; then
+ AC_MSG_ERROR([grpc_cpp_plugin not found in PATH])
+ fi
- GRPC_CXX_PLUGIN="$GRPCPREFIX/bin/grpc_cpp_plugin"
+ GRPC_CXX_PLUGIN="$GRPCPREFIX/bin/grpc_cpp_plugin"
- else
- AC_MSG_ERROR([cannot find grpc
+ else
+ AC_MSG_ERROR([cannot find grpc
-------------------------------------------------------------------
You have requested the use of a non-bundled grpc but no suitable
grpc could be found.
@@ -1242,14 +1236,12 @@ You may want specify the location of grpc by providing a prefix
path via --with-grpc=DIR, or check that the path you provided is
correct if you are already doing this.
-------------------------------------------------------------------
- ])
- fi
- else
- with_bundled_grpc=yes
+ ])
fi
+else
+ with_bundled_grpc=yes
fi
-AM_CONDITIONAL([ENABLE_GRPC], [test "x$enable_grpc" = "xyes"])
AM_CONDITIONAL([WITH_BUNDLED_GRPC],
[test "x$with_bundled_grpc" = "xyes"])
diff --git a/3rdparty/libprocess/src/CMakeLists.txt b/3rdparty/libprocess/src/CMakeLists.txt
index bb8af6d..19fa980 100644
--- a/3rdparty/libprocess/src/CMakeLists.txt
+++ b/3rdparty/libprocess/src/CMakeLists.txt
@@ -29,6 +29,7 @@ set(PROCESS_SRC
authenticator_manager.cpp
clock.cpp
firewall.cpp
+ grpc.cpp
gtest_constants.cpp
help.cpp
http.cpp
@@ -56,11 +57,6 @@ else ()
posix/subprocess.cpp)
endif ()
-if (ENABLE_GRPC)
- list(APPEND PROCESS_SRC
- grpc.cpp)
-endif ()
-
if (ENABLE_LIBEVENT)
list(APPEND PROCESS_SRC
posix/libevent/libevent.cpp
@@ -104,7 +100,7 @@ target_link_libraries(
process PUBLIC
stout
http_parser
- $<$<BOOL:${ENABLE_GRPC}>:grpc>
+ grpc
$<$<BOOL:${ENABLE_SSL}>:OpenSSL::SSL>
$<$<BOOL:${ENABLE_SSL}>:OpenSSL::Crypto>)
diff --git a/3rdparty/libprocess/src/tests/CMakeLists.txt b/3rdparty/libprocess/src/tests/CMakeLists.txt
index 5814bc6..a03a77e 100644
--- a/3rdparty/libprocess/src/tests/CMakeLists.txt
+++ b/3rdparty/libprocess/src/tests/CMakeLists.txt
@@ -24,6 +24,7 @@ set(PROCESS_TESTS_SRC
decoder_tests.cpp
encoder_tests.cpp
future_tests.cpp
+ grpc_tests.cpp
http_tests.cpp
limiter_tests.cpp
loop_tests.cpp
@@ -45,6 +46,25 @@ set(PROCESS_TESTS_SRC
time_tests.cpp
timeseries_tests.cpp)
+set(GRPC_TESTS_PROTOS
+ grpc_tests.grpc.pb.cc
+ grpc_tests.grpc.pb.h
+ grpc_tests.pb.cc
+ grpc_tests.pb.h)
+
+list(APPEND PROCESS_TESTS_SRC
+ ${GRPC_TESTS_PROTOS})
+
+add_custom_command(
+ OUTPUT ${GRPC_TESTS_PROTOS}
+ COMMAND protoc
+ -I${CMAKE_CURRENT_SOURCE_DIR}
+ --cpp_out=${CMAKE_CURRENT_BINARY_DIR}
+ --grpc_out=${CMAKE_CURRENT_BINARY_DIR}
+ --plugin=protoc-gen-grpc=$<TARGET_FILE:grpc_cpp_plugin>
+ ${CMAKE_CURRENT_SOURCE_DIR}/grpc_tests.proto
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/grpc_tests.proto)
+
if (NOT WIN32)
list(APPEND PROCESS_TESTS_SRC
io_tests.cpp
@@ -54,28 +74,6 @@ elseif (ENABLE_LIBWINIO)
io_tests.cpp)
endif ()
-if (ENABLE_GRPC)
- set(GRPC_TESTS_PROTOS
- grpc_tests.grpc.pb.cc
- grpc_tests.grpc.pb.h
- grpc_tests.pb.cc
- grpc_tests.pb.h)
-
- list(APPEND PROCESS_TESTS_SRC
- grpc_tests.cpp
- ${GRPC_TESTS_PROTOS})
-
- add_custom_command(
- OUTPUT ${GRPC_TESTS_PROTOS}
- COMMAND protoc
- -I${CMAKE_CURRENT_SOURCE_DIR}
- --cpp_out=${CMAKE_CURRENT_BINARY_DIR}
- --grpc_out=${CMAKE_CURRENT_BINARY_DIR}
- --plugin=protoc-gen-grpc=$<TARGET_FILE:grpc_cpp_plugin>
- ${CMAKE_CURRENT_SOURCE_DIR}/grpc_tests.proto
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/grpc_tests.proto)
-endif ()
-
if (ENABLE_SSL)
list(APPEND PROCESS_TESTS_SRC
jwt_tests.cpp
[mesos] 01/05: Fixed gRPC compilation with Clang when building
Mesos.
Posted by ch...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
chhsiao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 9fb936abdce72e313e77aa15f0b9fc95c7fea512
Author: Chun-Hung Hsiao <ch...@mesosphere.io>
AuthorDate: Mon Jul 30 16:58:54 2018 -0700
Fixed gRPC compilation with Clang when building Mesos.
When compiling gRPC with Clang, there are some array-out-of-bound
warnings due to the use of GLIBC's `__strcmp_cg` macro in the c-ares
library. With `-Werror` on, these warnings would stop gRPC from
compiling. This patch ignores such errors.
Review: https://reviews.apache.org/r/68114
---
3rdparty/Makefile.am | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/3rdparty/Makefile.am b/3rdparty/Makefile.am
index e7005fb..9508b0f 100644
--- a/3rdparty/Makefile.am
+++ b/3rdparty/Makefile.am
@@ -425,16 +425,20 @@ LIB_GRPC = $(GRPC)/libs/opt/libgrpc++$(GRPC_VARIANT).a \
$(LIB_GRPC): $(GRPC)-build-stamp
-# NOTE: We the include flags through the `CPPFLAGS` environment variable rather
-# than the command line because gRPC uses target-specific assignments to append
-# flags to `CPPFLAGS`, which will be overwritten by command line arguments. See:
+# NOTE: We include flags through the `CPPFLAGS` environment variable rather than
+# the command line because gRPC uses target-specific assignments to append flags
+# to `CPPFLAGS`, which will be overwritten by command line arguments. See:
# https://www.gnu.org/software/make/manual/html_node/Target_002dspecific.html
+#
+# NOTE: We ignore `array-bounds` errors generated by the GLIBC's `__strcmp_cg`
+# macro used in gRPC's c-ares library when compiled with Clang.
$(GRPC)-build-stamp: $(GRPC)-stamp \
$(PROTOBUF)-build-stamp
cd $(GRPC) && \
CPPFLAGS="$(PROTOBUF_INCLUDE_FLAGS) \
$(SSL_INCLUDE_FLAGS) \
- $(ZLIB_INCLUDE_FLAGS)" \
+ $(ZLIB_INCLUDE_FLAGS) \
+ -Wno-array-bounds" \
$(MAKE) $(AM_MAKEFLAGS) \
$(LIB_GRPC:%=$(abs_builddir)/%) \
CC="$(CC)" \
[mesos] 05/05: Always build gRPC in Mesos.
Posted by ch...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
chhsiao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 5bb42453b1bbadf0c51b0965206fe9b4e71a00f5
Author: Chun-Hung Hsiao <ch...@mesosphere.io>
AuthorDate: Thu Jul 26 16:32:38 2018 -0700
Always build gRPC in Mesos.
Review: https://reviews.apache.org/r/68074
---
3rdparty/CMakeLists.txt | 216 ++++++++++++++---------------
3rdparty/Makefile.am | 2 -
cmake/CompilationConfigure.cmake | 10 --
configure.ac | 92 ++++++------
include/csi/spec.hpp | 4 -
src/CMakeLists.txt | 12 +-
src/Makefile.am | 48 ++-----
src/cmake/MesosProtobuf.cmake | 6 +-
src/examples/CMakeLists.txt | 4 +-
src/python/native_common/ext_modules.py.in | 40 +++---
src/resource_provider/local.cpp | 4 +-
src/tests/CMakeLists.txt | 23 +--
12 files changed, 195 insertions(+), 266 deletions(-)
diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt
index 2e5d519..629b196 100644
--- a/3rdparty/CMakeLists.txt
+++ b/3rdparty/CMakeLists.txt
@@ -1215,140 +1215,138 @@ ExternalProject_Add(
URL_HASH ${PROTOBUF_HASH})
-if (ENABLE_GRPC)
- # gRPC: Google's high performance, open-source universal RPC framework.
- # https://grpc.io/
- #######################################################################
- EXTERNAL(grpc ${GRPC_VERSION} ${CMAKE_CURRENT_BINARY_DIR})
-
- add_library(libgpr ${LIBRARY_LINKAGE} IMPORTED)
- add_dependencies(libgpr ${GRPC_TARGET})
- add_library(libgrpc ${LIBRARY_LINKAGE} IMPORTED)
- add_dependencies(libgrpc ${GRPC_TARGET})
- add_library(libgrpc++ ${LIBRARY_LINKAGE} IMPORTED)
- add_dependencies(libgrpc++ ${GRPC_TARGET})
-
- add_library(grpc INTERFACE)
- target_link_libraries(grpc INTERFACE libgrpc++ libgrpc libgpr)
-
- # TODO(chhsiao): Move grpc so these don't have to be GLOBAL.
- add_executable(grpc_cpp_plugin IMPORTED GLOBAL)
- add_dependencies(grpc_cpp_plugin ${GRPC_TARGET})
-
- set(GRPC_CMAKE_ARGS
- ${CMAKE_C_FORWARD_ARGS}
- ${CMAKE_CXX_FORWARD_ARGS}
- -DCMAKE_PREFIX_PATH=${PROTOBUF_ROOT}-build
- -DgRPC_PROTOBUF_PROVIDER=package
- -DgRPC_PROTOBUF_PACKAGE_TYPE=CONFIG
- -DgRPC_ZLIB_PROVIDER=package)
-
- if (ENABLE_SSL)
- set(GRPC_VARIANT "")
- list(APPEND GRPC_CMAKE_ARGS -DgRPC_SSL_PROVIDER=package ${CMAKE_SSL_FORWARD_ARGS})
- else ()
- set(GRPC_VARIANT "_unsecure")
- list(APPEND GRPC_CMAKE_ARGS -DgRPC_SSL_PROVIDER=none)
- endif ()
-
- set(GRPC_BUILD_CMD
- ${CMAKE_COMMAND} --build . --config $<CONFIG> --target gpr &&
- ${CMAKE_COMMAND} --build . --config $<CONFIG> --target grpc${GRPC_VARIANT} &&
- ${CMAKE_COMMAND} --build . --config $<CONFIG> --target grpc++${GRPC_VARIANT} &&
- ${CMAKE_COMMAND} --build . --config $<CONFIG> --target grpc_cpp_plugin)
-
- set_target_properties(
- grpc PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES ${GRPC_ROOT}/include)
+# gRPC: Google's high performance, open-source universal RPC framework.
+# https://grpc.io/
+#######################################################################
+EXTERNAL(grpc ${GRPC_VERSION} ${CMAKE_CURRENT_BINARY_DIR})
+
+add_library(libgpr ${LIBRARY_LINKAGE} IMPORTED)
+add_dependencies(libgpr ${GRPC_TARGET})
+add_library(libgrpc ${LIBRARY_LINKAGE} IMPORTED)
+add_dependencies(libgrpc ${GRPC_TARGET})
+add_library(libgrpc++ ${LIBRARY_LINKAGE} IMPORTED)
+add_dependencies(libgrpc++ ${GRPC_TARGET})
+
+add_library(grpc INTERFACE)
+target_link_libraries(grpc INTERFACE libgrpc++ libgrpc libgpr)
+
+# TODO(chhsiao): Move grpc so these don't have to be GLOBAL.
+add_executable(grpc_cpp_plugin IMPORTED GLOBAL)
+add_dependencies(grpc_cpp_plugin ${GRPC_TARGET})
+
+set(GRPC_CMAKE_ARGS
+ ${CMAKE_C_FORWARD_ARGS}
+ ${CMAKE_CXX_FORWARD_ARGS}
+ -DCMAKE_PREFIX_PATH=${PROTOBUF_ROOT}-build
+ -DgRPC_PROTOBUF_PROVIDER=package
+ -DgRPC_PROTOBUF_PACKAGE_TYPE=CONFIG
+ -DgRPC_ZLIB_PROVIDER=package)
- if (WIN32)
- PATCH_CMD(GRPC_PATCH_CMD grpc-${GRPC_VERSION}.patch)
+if (ENABLE_SSL)
+ set(GRPC_VARIANT "")
+ list(APPEND GRPC_CMAKE_ARGS -DgRPC_SSL_PROVIDER=package ${CMAKE_SSL_FORWARD_ARGS})
+else ()
+ set(GRPC_VARIANT "_unsecure")
+ list(APPEND GRPC_CMAKE_ARGS -DgRPC_SSL_PROVIDER=none)
+endif ()
- list(APPEND GRPC_CMAKE_ARGS -DZLIB_ROOT=${ZLIB_ROOT}-lib)
+set(GRPC_BUILD_CMD
+ ${CMAKE_COMMAND} --build . --config $<CONFIG> --target gpr &&
+ ${CMAKE_COMMAND} --build . --config $<CONFIG> --target grpc${GRPC_VARIANT} &&
+ ${CMAKE_COMMAND} --build . --config $<CONFIG> --target grpc++${GRPC_VARIANT} &&
+ ${CMAKE_COMMAND} --build . --config $<CONFIG> --target grpc_cpp_plugin)
- if (CMAKE_GENERATOR MATCHES "Visual Studio")
- set_target_properties(
- libgpr PROPERTIES
- IMPORTED_LOCATION_DEBUG ${GRPC_ROOT}-build/Debug/gpr${LIBRARY_SUFFIX}
- IMPORTED_LOCATION_RELEASE ${GRPC_ROOT}-build/Release/gpr${LIBRARY_SUFFIX}
- IMPORTED_IMPLIB_DEBUG ${GRPC_ROOT}-build/Debug/gpr${CMAKE_IMPORT_LIBRARY_SUFFIX}
- IMPORTED_IMPLIB_RELEASE ${GRPC_ROOT}-build/Release/gpr${CMAKE_IMPORT_LIBRARY_SUFFIX})
+set_target_properties(
+ grpc PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES ${GRPC_ROOT}/include)
- set_target_properties(
- libgrpc PROPERTIES
- IMPORTED_LOCATION_DEBUG ${GRPC_ROOT}-build/Debug/grpc${GRPC_VARIANT}${LIBRARY_SUFFIX}
- IMPORTED_LOCATION_RELEASE ${GRPC_ROOT}-build/Release/grpc${GRPC_VARIANT}${LIBRARY_SUFFIX}
- IMPORTED_IMPLIB_DEBUG ${GRPC_ROOT}-build/Debug/grpc${GRPC_VARIANT}${CMAKE_IMPORT_LIBRARY_SUFFIX}
- IMPORTED_IMPLIB_RELEASE ${GRPC_ROOT}-build/Release/grpc${GRPC_VARIANT}${CMAKE_IMPORT_LIBRARY_SUFFIX})
+if (WIN32)
+ PATCH_CMD(GRPC_PATCH_CMD grpc-${GRPC_VERSION}.patch)
- set_target_properties(
- libgrpc++ PROPERTIES
- IMPORTED_LOCATION_DEBUG ${GRPC_ROOT}-build/Debug/grpc++${GRPC_VARIANT}${LIBRARY_SUFFIX}
- IMPORTED_LOCATION_RELEASE ${GRPC_ROOT}-build/Release/grpc++${GRPC_VARIANT}${LIBRARY_SUFFIX}
- IMPORTED_IMPLIB_DEBUG ${GRPC_ROOT}-build/Debug/grpc++${GRPC_VARIANT}${CMAKE_IMPORT_LIBRARY_SUFFIX}
- IMPORTED_IMPLIB_RELEASE ${GRPC_ROOT}-build/Release/grpc++${GRPC_VARIANT}${CMAKE_IMPORT_LIBRARY_SUFFIX})
+ list(APPEND GRPC_CMAKE_ARGS -DZLIB_ROOT=${ZLIB_ROOT}-lib)
- set_target_properties(
- grpc_cpp_plugin PROPERTIES
- IMPORTED_LOCATION_DEBUG ${GRPC_ROOT}-build/Debug/grpc_cpp_plugin.exe
- IMPORTED_LOCATION_RELEASE ${GRPC_ROOT}-build/Release/grpc_cpp_plugin.exe)
- else ()
- set_target_properties(
- libgpr PROPERTIES
- IMPORTED_LOCATION ${GRPC_ROOT}-build/gpr${LIBRARY_SUFFIX}
- IMPORTED_IMPLIB ${GRPC_ROOT}-build/gpr${CMAKE_IMPORT_LIBRARY_SUFFIX})
+ if (CMAKE_GENERATOR MATCHES "Visual Studio")
+ set_target_properties(
+ libgpr PROPERTIES
+ IMPORTED_LOCATION_DEBUG ${GRPC_ROOT}-build/Debug/gpr${LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_RELEASE ${GRPC_ROOT}-build/Release/gpr${LIBRARY_SUFFIX}
+ IMPORTED_IMPLIB_DEBUG ${GRPC_ROOT}-build/Debug/gpr${CMAKE_IMPORT_LIBRARY_SUFFIX}
+ IMPORTED_IMPLIB_RELEASE ${GRPC_ROOT}-build/Release/gpr${CMAKE_IMPORT_LIBRARY_SUFFIX})
- set_target_properties(
- libgrpc PROPERTIES
- IMPORTED_LOCATION ${GRPC_ROOT}-build/grpc${GRPC_VARIANT}${LIBRARY_SUFFIX}
- IMPORTED_IMPLIB ${GRPC_ROOT}-build/grpc${GRPC_VARIANT}${CMAKE_IMPORT_LIBRARY_SUFFIX})
+ set_target_properties(
+ libgrpc PROPERTIES
+ IMPORTED_LOCATION_DEBUG ${GRPC_ROOT}-build/Debug/grpc${GRPC_VARIANT}${LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_RELEASE ${GRPC_ROOT}-build/Release/grpc${GRPC_VARIANT}${LIBRARY_SUFFIX}
+ IMPORTED_IMPLIB_DEBUG ${GRPC_ROOT}-build/Debug/grpc${GRPC_VARIANT}${CMAKE_IMPORT_LIBRARY_SUFFIX}
+ IMPORTED_IMPLIB_RELEASE ${GRPC_ROOT}-build/Release/grpc${GRPC_VARIANT}${CMAKE_IMPORT_LIBRARY_SUFFIX})
- set_target_properties(
- libgrpc++ PROPERTIES
- IMPORTED_LOCATION ${GRPC_ROOT}-build/grpc++${GRPC_VARIANT}${LIBRARY_SUFFIX}
- IMPORTED_IMPLIB ${GRPC_ROOT}-build/grpc++${GRPC_VARIANT}${CMAKE_IMPORT_LIBRARY_SUFFIX})
+ set_target_properties(
+ libgrpc++ PROPERTIES
+ IMPORTED_LOCATION_DEBUG ${GRPC_ROOT}-build/Debug/grpc++${GRPC_VARIANT}${LIBRARY_SUFFIX}
+ IMPORTED_LOCATION_RELEASE ${GRPC_ROOT}-build/Release/grpc++${GRPC_VARIANT}${LIBRARY_SUFFIX}
+ IMPORTED_IMPLIB_DEBUG ${GRPC_ROOT}-build/Debug/grpc++${GRPC_VARIANT}${CMAKE_IMPORT_LIBRARY_SUFFIX}
+ IMPORTED_IMPLIB_RELEASE ${GRPC_ROOT}-build/Release/grpc++${GRPC_VARIANT}${CMAKE_IMPORT_LIBRARY_SUFFIX})
- set_target_properties(
- grpc_cpp_plugin PROPERTIES
- IMPORTED_LOCATION ${GRPC_ROOT}-build/grpc_cpp_plugin.exe)
- endif()
+ set_target_properties(
+ grpc_cpp_plugin PROPERTIES
+ IMPORTED_LOCATION_DEBUG ${GRPC_ROOT}-build/Debug/grpc_cpp_plugin.exe
+ IMPORTED_LOCATION_RELEASE ${GRPC_ROOT}-build/Release/grpc_cpp_plugin.exe)
else ()
set_target_properties(
libgpr PROPERTIES
- IMPORTED_LOCATION ${GRPC_ROOT}-build/libgpr${LIBRARY_SUFFIX})
+ IMPORTED_LOCATION ${GRPC_ROOT}-build/gpr${LIBRARY_SUFFIX}
+ IMPORTED_IMPLIB ${GRPC_ROOT}-build/gpr${CMAKE_IMPORT_LIBRARY_SUFFIX})
set_target_properties(
libgrpc PROPERTIES
- IMPORTED_LOCATION ${GRPC_ROOT}-build/libgrpc${GRPC_VARIANT}${LIBRARY_SUFFIX})
+ IMPORTED_LOCATION ${GRPC_ROOT}-build/grpc${GRPC_VARIANT}${LIBRARY_SUFFIX}
+ IMPORTED_IMPLIB ${GRPC_ROOT}-build/grpc${GRPC_VARIANT}${CMAKE_IMPORT_LIBRARY_SUFFIX})
set_target_properties(
libgrpc++ PROPERTIES
- IMPORTED_LOCATION ${GRPC_ROOT}-build/libgrpc++${GRPC_VARIANT}${LIBRARY_SUFFIX})
+ IMPORTED_LOCATION ${GRPC_ROOT}-build/grpc++${GRPC_VARIANT}${LIBRARY_SUFFIX}
+ IMPORTED_IMPLIB ${GRPC_ROOT}-build/grpc++${GRPC_VARIANT}${CMAKE_IMPORT_LIBRARY_SUFFIX})
set_target_properties(
grpc_cpp_plugin PROPERTIES
- IMPORTED_LOCATION ${GRPC_ROOT}-build/grpc_cpp_plugin)
- endif ()
+ IMPORTED_LOCATION ${GRPC_ROOT}-build/grpc_cpp_plugin.exe)
+ endif()
+else ()
+ set_target_properties(
+ libgpr PROPERTIES
+ IMPORTED_LOCATION ${GRPC_ROOT}-build/libgpr${LIBRARY_SUFFIX})
- MAKE_INCLUDE_DIR(grpc)
- GET_BYPRODUCTS(libgpr)
- GET_BYPRODUCTS(libgrpc)
- GET_BYPRODUCTS(libgrpc++)
- GET_BYPRODUCTS(grpc_cpp_plugin)
+ set_target_properties(
+ libgrpc PROPERTIES
+ IMPORTED_LOCATION ${GRPC_ROOT}-build/libgrpc${GRPC_VARIANT}${LIBRARY_SUFFIX})
- ExternalProject_Add(
- ${GRPC_TARGET}
- DEPENDS protobuf protoc zlib
- PREFIX ${GRPC_CMAKE_ROOT}
- PATCH_COMMAND ${GRPC_PATCH_CMD}
- BUILD_BYPRODUCTS ${LIBGPR_BYPRODUCTS};${LIBGRPC_BYPRODUCTS};${LIBGRPC++_BYPRODUCTS};${GRPC_CPP_PLUGIN_BYPRODUCTS}
- CMAKE_ARGS ${GRPC_CMAKE_ARGS}
- BUILD_COMMAND ${GRPC_BUILD_CMD}
- INSTALL_COMMAND ${CMAKE_NOOP}
- URL ${GRPC_URL}
- URL_HASH ${GRPC_HASH})
+ set_target_properties(
+ libgrpc++ PROPERTIES
+ IMPORTED_LOCATION ${GRPC_ROOT}-build/libgrpc++${GRPC_VARIANT}${LIBRARY_SUFFIX})
+
+ set_target_properties(
+ grpc_cpp_plugin PROPERTIES
+ IMPORTED_LOCATION ${GRPC_ROOT}-build/grpc_cpp_plugin)
endif ()
+MAKE_INCLUDE_DIR(grpc)
+GET_BYPRODUCTS(libgpr)
+GET_BYPRODUCTS(libgrpc)
+GET_BYPRODUCTS(libgrpc++)
+GET_BYPRODUCTS(grpc_cpp_plugin)
+
+ExternalProject_Add(
+ ${GRPC_TARGET}
+ DEPENDS protobuf protoc zlib
+ PREFIX ${GRPC_CMAKE_ROOT}
+ PATCH_COMMAND ${GRPC_PATCH_CMD}
+ BUILD_BYPRODUCTS ${LIBGPR_BYPRODUCTS};${LIBGRPC_BYPRODUCTS};${LIBGRPC++_BYPRODUCTS};${GRPC_CPP_PLUGIN_BYPRODUCTS}
+ CMAKE_ARGS ${GRPC_CMAKE_ARGS}
+ BUILD_COMMAND ${GRPC_BUILD_CMD}
+ INSTALL_COMMAND ${CMAKE_NOOP}
+ URL ${GRPC_URL}
+ URL_HASH ${GRPC_HASH})
+
# Jemalloc: General-purpose malloc implementation.
# http://jemalloc.net
diff --git a/3rdparty/Makefile.am b/3rdparty/Makefile.am
index 9508b0f..6476b04 100644
--- a/3rdparty/Makefile.am
+++ b/3rdparty/Makefile.am
@@ -413,7 +413,6 @@ PROTOBUF_LINKER_FLAGS = @PROTOBUF_LINKERFLAGS@
PROTOC = @PROTOCOMPILER@
endif
-if ENABLE_GRPC
if !ENABLE_SSL
GRPC_VARIANT = _unsecure
endif
@@ -458,7 +457,6 @@ else
$(GRPC)-build-stamp:
touch $@
endif
-endif
# NOTE: We extract `csi.proto` even if gRPC is disabled because it is
# imported by other proto files.
diff --git a/cmake/CompilationConfigure.cmake b/cmake/CompilationConfigure.cmake
index 50c4c5d..10cacfb 100644
--- a/cmake/CompilationConfigure.cmake
+++ b/cmake/CompilationConfigure.cmake
@@ -75,11 +75,6 @@ option(
TRUE)
option(
- ENABLE_GRPC
- "Build libprocess with gRPC support."
- FALSE)
-
-option(
ENABLE_LIBEVENT
"Use libevent instead of libev as the core event loop implementation."
FALSE)
@@ -556,11 +551,6 @@ add_definitions(
-DVERSION="${PACKAGE_VERSION}"
-DPKGDATADIR="${DATA_INSTALL_PREFIX}")
-if (ENABLE_GRPC)
- # TODO(chhsiao): Make this non-global.
- add_definitions(-DENABLE_GRPC=1)
-endif ()
-
if (ENABLE_SSL)
# TODO(andschwa): Make this non-global.
add_definitions(-DUSE_SSL_SOCKET=1)
diff --git a/configure.ac b/configure.ac
index 58003b6..d845818 100644
--- a/configure.ac
+++ b/configure.ac
@@ -246,11 +246,6 @@ AC_ARG_ENABLE([gc-unused],
[enable garbage collection of unused program segments]),
[], [enable_gc_unused=no])
-AC_ARG_ENABLE([grpc],
- AS_HELP_STRING([--enable-grpc],
- [enable grpc support]),
- [], [enable_grpc=no])
-
AC_ARG_ENABLE([hardening],
AS_HELP_STRING([--disable-hardening],
[disables security measures such as stack
@@ -2199,52 +2194,51 @@ location of protobuf used by grpc by providing a prefix path via
LDFLAGS="$LDFLAGS -L${with_grpc}/lib"
fi
-if test "x$enable_grpc" = "xyes"; then
- # Check if user has asked us to use a preinstalled grpc, or if they
- # asked us to ignore all bundled libraries while compiling and linking.
- if test "x$without_bundled_grpc" = "xyes" || \
- test "x$enable_bundled" != "xyes"; then
- # Use the system default prefix if not specified.
- if test -n "`echo $with_grpc`"; then
- GRPCPREFIX="${with_grpc}"
- elif test "x$enable_bundled" != "xyes"; then
- GRPCPREFIX="/usr"
- fi
+# Check if user has asked us to use a preinstalled grpc, or if they
+# asked us to ignore all bundled libraries while compiling and linking.
+if test "x$without_bundled_grpc" = "xyes" || \
+ test "x$enable_bundled" != "xyes"; then
+ # Use the system default prefix if not specified.
+ if test -n "`echo $with_grpc`"; then
+ GRPCPREFIX="${with_grpc}"
+ elif test "x$enable_bundled" != "xyes"; then
+ GRPCPREFIX="/usr"
+ fi
- if test "x$enable_ssl" = "xno"; then
- GRPC_VARIANT="_unsecure"
- fi
+ if test "x$enable_ssl" = "xno"; then
+ GRPC_VARIANT="_unsecure"
+ fi
- # Check if headers and library were located.
- saved_LIBS="$LIBS"
- LIBS="-lgrpc++$GRPC_VARIANT -lgrpc$GRPC_VARIANT -lgpr $LIBS"
- AC_LANG_PUSH([C++])
- AC_CHECK_HEADERS([grpcpp/grpcpp.h],
- [AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([#include <grpcpp/grpcpp.h>],
- [grpc::Version();])],
- [found_grpc=yes],
- [found_grpc=no])],
- [found_grpc=no])
- AC_LANG_POP()
- LIBS="$saved_LIBS"
+ # Check if headers and library were located.
+ saved_LIBS="$LIBS"
+ LIBS="-lgrpc++$GRPC_VARIANT -lgrpc$GRPC_VARIANT -lgpr $LIBS"
+ AC_LANG_PUSH([C++])
+ AC_CHECK_HEADERS([grpcpp/grpcpp.h],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([#include <grpcpp/grpcpp.h>],
+ [grpc::Version();])],
+ [found_grpc=yes],
+ [found_grpc=no])],
+ [found_grpc=no])
+ AC_LANG_POP()
+ LIBS="$saved_LIBS"
- if test "x$found_grpc" = "xyes"; then
- with_bundled_grpc=no
+ if test "x$found_grpc" = "xyes"; then
+ with_bundled_grpc=no
- AC_CHECK_TOOL([GRPC_CXX_PLUGIN_TEST],
- [grpc_cpp_plugin],
- [],
- [$GRPCPREFIX/bin])
+ AC_CHECK_TOOL([GRPC_CXX_PLUGIN_TEST],
+ [grpc_cpp_plugin],
+ [],
+ [$GRPCPREFIX/bin])
- if test -z "`echo $GRPC_CXX_PLUGIN_TEST`"; then
- AC_MSG_ERROR([grpc_cpp_plugin not found in PATH])
- fi
+ if test -z "`echo $GRPC_CXX_PLUGIN_TEST`"; then
+ AC_MSG_ERROR([grpc_cpp_plugin not found in PATH])
+ fi
- GRPC_CXX_PLUGIN="$GRPCPREFIX/bin/grpc_cpp_plugin"
+ GRPC_CXX_PLUGIN="$GRPCPREFIX/bin/grpc_cpp_plugin"
- else
- AC_MSG_ERROR([cannot find grpc
+ else
+ AC_MSG_ERROR([cannot find grpc
-------------------------------------------------------------------
You have requested the use of a non-bundled grpc but no suitable
grpc could be found.
@@ -2253,16 +2247,12 @@ You may want specify the location of grpc by providing a prefix
path via --with-grpc=DIR, or check that the path you provided is
correct if you are already doing this.
-------------------------------------------------------------------
- ])
- fi
- else
- with_bundled_grpc=yes
+ ])
fi
-
- AC_DEFINE([ENABLE_GRPC])
+else
+ with_bundled_grpc=yes
fi
-AM_CONDITIONAL([ENABLE_GRPC], [test "x$enable_grpc" = "xyes"])
AM_CONDITIONAL([WITH_BUNDLED_GRPC],
[test "x$with_bundled_grpc" = "xyes"])
diff --git a/include/csi/spec.hpp b/include/csi/spec.hpp
index 2e9b870..19d9445 100644
--- a/include/csi/spec.hpp
+++ b/include/csi/spec.hpp
@@ -20,12 +20,8 @@
// ONLY USEFUL AFTER RUNNING PROTOC.
#include <csi/csi.pb.h>
-// TODO(chhsiao): Consider removing the conditional inclusion to make
-// this public header not depend on a build flag. See MESOS-8715.
-#ifdef ENABLE_GRPC
// ONLY USEFUL AFTER RUNNING PROTOC WITH GRPC CPP PLUGIN.
#include <csi/csi.grpc.pb.h>
-#endif // ENABLE_GRPC
namespace mesos {
namespace csi {
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 0e0913b..a80b011 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -109,7 +109,7 @@ add_library(
target_link_libraries(mesos-protobufs PUBLIC
protobuf
- $<$<BOOL:${ENABLE_GRPC}>:grpc>)
+ grpc)
target_include_directories(
mesos-protobufs
@@ -237,15 +237,11 @@ set(COMMON_SRC
common/values.cpp)
set(CSI_SRC
+ csi/client.cpp
csi/paths.cpp
+ csi/rpc.cpp
csi/utils.cpp)
-if (ENABLE_GRPC)
- list(APPEND CSI_SRC
- csi/client.cpp
- csi/rpc.cpp)
-endif ()
-
set(DOCKER_SRC
docker/docker.cpp
docker/spec.cpp)
@@ -422,7 +418,7 @@ set(RESOURCE_PROVIDER_SRC
# NOTE: The storage local resource provider uses Unix domain sockets to talk to
# CSI plugins, thus it is currently not supported on Windows.
-if (ENABLE_GRPC AND NOT WIN32)
+if (NOT WIN32)
list(APPEND RESOURCE_PROVIDER_SRC
resource_provider/storage/provider.cpp)
endif ()
diff --git a/src/Makefile.am b/src/Makefile.am
index 10ef977..cf0cf22 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -170,7 +170,6 @@ LIB_GLOG = -lglog
LDADD += -lglog
endif
-if ENABLE_GRPC
if !ENABLE_SSL
GRPC_VARIANT = _unsecure
endif
@@ -185,7 +184,6 @@ else
LIB_GRPC = -lgrpc++$(GRPC_VARIANT) -lgrpc$(GRPC_VARIANT) -lgpr
GRPC_CPP_PLUGIN = @GRPC_CXX_PLUGIN@
endif
-endif
if WITH_BUNDLED_JEMALLOC
# TODO(bennoe): We could call `jemalloc-conf --libs` to get the required
@@ -405,17 +403,13 @@ CXX_PROTOS += \
resource_provider/storage/disk_profile.pb.h
CXX_CSI_PROTOS = \
+ ../include/csi/csi.grpc.pb.cc \
+ ../include/csi/csi.grpc.pb.h \
../include/csi/csi.pb.cc \
../include/csi/csi.pb.h \
csi/state.pb.cc \
csi/state.pb.h
-if ENABLE_GRPC
-CXX_CSI_PROTOS += \
- ../include/csi/csi.grpc.pb.cc \
- ../include/csi/csi.grpc.pb.h
-endif
-
CXX_LOG_PROTOS = \
messages/log.pb.cc \
messages/log.pb.h
@@ -1471,13 +1465,9 @@ libmesos_no_3rdparty_la_SOURCES += \
resource_provider/storage/disk_profile_adaptor.cpp \
resource_provider/storage/disk_profile.proto \
resource_provider/storage/disk_profile_utils.cpp \
- resource_provider/storage/disk_profile_utils.hpp
-
-if ENABLE_GRPC
-libmesos_no_3rdparty_la_SOURCES += \
+ resource_provider/storage/disk_profile_utils.hpp \
resource_provider/storage/provider.cpp \
resource_provider/storage/provider.hpp
-endif
libmesos_no_3rdparty_la_CPPFLAGS = $(MESOS_CPPFLAGS)
@@ -1525,23 +1515,19 @@ libmesos_no_3rdparty_la_LIBADD += libbuild.la
# Convenience library for build the CSI client.
noinst_LTLIBRARIES += libcsi.la
libcsi_la_SOURCES = \
+ csi/client.cpp \
csi/paths.cpp \
+ csi/rpc.cpp \
csi/utils.cpp
libcsi_la_SOURCES += \
../include/csi/spec.hpp \
+ csi/client.hpp \
csi/paths.hpp \
+ csi/rpc.hpp \
csi/state.hpp \
csi/state.proto \
csi/utils.hpp
-if ENABLE_GRPC
-libcsi_la_SOURCES += \
- csi/client.cpp \
- csi/client.hpp \
- csi/rpc.cpp \
- csi/rpc.hpp
-endif
-
nodist_libcsi_la_SOURCES = $(CXX_CSI_PROTOS)
libcsi_la_CPPFLAGS = $(MESOS_CPPFLAGS)
@@ -2325,14 +2311,12 @@ disk_full_framework_SOURCES = examples/disk_full_framework.cpp
disk_full_framework_CPPFLAGS = $(MESOS_CPPFLAGS)
disk_full_framework_LDADD = libmesos.la $(LDADD)
-if ENABLE_GRPC
if OS_LINUX
check_PROGRAMS += test-csi-plugin
test_csi_plugin_SOURCES = examples/test_csi_plugin.cpp
test_csi_plugin_CPPFLAGS = $(MESOS_CPPFLAGS)
test_csi_plugin_LDADD = libmesos.la $(LIB_PROTOBUF) $(LIB_GRPC) $(LDADD)
endif
-endif
check_PROGRAMS += test-helper
test_helper_SOURCES = \
@@ -2512,6 +2496,7 @@ mesos_tests_SOURCES = \
tests/containerizer.hpp \
tests/cram_md5_authentication_tests.cpp \
tests/credentials_tests.cpp \
+ tests/csi_client_tests.cpp \
tests/default_executor_tests.cpp \
tests/disk_profile_adaptor_tests.cpp \
tests/disk_profile_server.hpp \
@@ -2555,6 +2540,8 @@ mesos_tests_SOURCES = \
tests/mesos.cpp \
tests/mesos.hpp \
tests/metrics_tests.cpp \
+ tests/mock_csi_plugin.cpp \
+ tests/mock_csi_plugin.hpp \
tests/mock_docker.cpp \
tests/mock_docker.hpp \
tests/mock_fetcher.cpp \
@@ -2647,13 +2634,6 @@ mesos_tests_SOURCES = \
tests/containerizer/setns_test_helper.hpp \
tests/containerizer/volume_sandbox_path_isolator_tests.cpp
-if ENABLE_GRPC
-mesos_tests_SOURCES += \
- tests/csi_client_tests.cpp \
- tests/mock_csi_plugin.cpp \
- tests/mock_csi_plugin.hpp
-endif
-
if ENABLE_XFS_DISK_ISOLATOR
mesos_tests_SOURCES += \
tests/containerizer/xfs_quota_tests.cpp
@@ -2686,8 +2666,10 @@ mesos_tests_DEPENDENCIES = \
if OS_LINUX
mesos_tests_SOURCES += \
+ tests/agent_resource_provider_config_api_tests.cpp \
tests/ldcache_tests.cpp \
tests/ldd_tests.cpp \
+ tests/storage_local_resource_provider_tests.cpp \
tests/containerizer/linux_capabilities_isolator_tests.cpp \
tests/containerizer/capabilities_tests.cpp \
tests/containerizer/capabilities_test_helper.cpp \
@@ -2710,12 +2692,6 @@ mesos_tests_SOURCES += \
tests/containerizer/volume_host_path_isolator_tests.cpp \
tests/containerizer/volume_image_isolator_tests.cpp \
tests/containerizer/volume_secret_isolator_tests.cpp
-
-if ENABLE_GRPC
-mesos_tests_SOURCES += \
- tests/agent_resource_provider_config_api_tests.cpp \
- tests/storage_local_resource_provider_tests.cpp
-endif
endif
if ENABLE_LINUX_ROUTING
diff --git a/src/cmake/MesosProtobuf.cmake b/src/cmake/MesosProtobuf.cmake
index 9fadc9f..09074d7 100644
--- a/src/cmake/MesosProtobuf.cmake
+++ b/src/cmake/MesosProtobuf.cmake
@@ -127,7 +127,7 @@ function(PROTOC_GENERATE)
list(APPEND PROTOC_OPTIONS -I${INTERNAL_PROTO_PATH})
endif ()
- if (PROTOC_GRPC AND ENABLE_GRPC)
+ if (PROTOC_GRPC)
list(APPEND PROTOC_OPTIONS
--grpc_out=${CPP_OUT}
--plugin=protoc-gen-grpc=$<TARGET_FILE:grpc_cpp_plugin>)
@@ -142,7 +142,7 @@ function(PROTOC_GENERATE)
set(CC ${CPP_OUT}/${PROTOC_TARGET}.pb.cc)
set(H ${CPP_OUT}/${PROTOC_TARGET}.pb.h)
- if (PROTOC_GRPC AND ENABLE_GRPC)
+ if (PROTOC_GRPC)
set(GRPC_CC ${CPP_OUT}/${PROTOC_TARGET}.grpc.pb.cc)
set(GRPC_H ${CPP_OUT}/${PROTOC_TARGET}.grpc.pb.h)
endif ()
@@ -211,7 +211,7 @@ function(PROTOC_GENERATE)
endif ()
# Make sure that the gRPC plugin is built.
- if (PROTOC_GRPC AND ENABLE_GRPC)
+ if (PROTOC_GRPC)
list(APPEND PROTOC_DEPENDS grpc_cpp_plugin)
endif ()
diff --git a/src/examples/CMakeLists.txt b/src/examples/CMakeLists.txt
index 6a6ee7c..a2c0dd1 100644
--- a/src/examples/CMakeLists.txt
+++ b/src/examples/CMakeLists.txt
@@ -53,7 +53,7 @@ if (NOT WIN32)
add_executable(test-csi-user-framework test_csi_user_framework.cpp)
# TODO(chhsiao): The test CSI plugin is Linux only for now.
- if (ENABLE_GRPC AND LINUX)
+ if (LINUX)
add_executable(test-csi-plugin test_csi_plugin.cpp)
endif ()
@@ -91,7 +91,7 @@ if (NOT WIN32)
target_link_libraries(test-csi-user-framework PRIVATE mesos)
# TODO(chhsiao): The test CSI plugin is Linux only for now.
- if (ENABLE_GRPC AND LINUX)
+ if (LINUX)
# NOTE: We explicitly add `grpc` here since the test CSI plugin uses the
# server-side gRPC library, which might not be linked in mesos.
target_link_libraries(test-csi-plugin PRIVATE mesos grpc)
diff --git a/src/python/native_common/ext_modules.py.in b/src/python/native_common/ext_modules.py.in
index dc4d91a..7efbb8e 100644
--- a/src/python/native_common/ext_modules.py.in
+++ b/src/python/native_common/ext_modules.py.in
@@ -125,29 +125,27 @@ def _create_module(module_name):
EXTRA_OBJECTS.append(libprofiler)
- # We need to check for the presense of libgrpc++.a, libgrpc.a and libgpr.a
- # only if gRPC is enabled.
- if '@ENABLE_GRPC_FALSE@' == '#':
- grpc = os.path.join('3rdparty', 'grpc-1.10.0')
- grpc_variant = '_unsecure' if '@ENABLE_SSL_TRUE@' == '#' else ''
- libgrpcpp = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgrpc++%s.a' % grpc_variant)
- libgrpc = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgrpc%s.a' % grpc_variant)
- libgpr = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgpr.a')
-
- if os.path.exists(libgrpcpp):
- EXTRA_OBJECTS.append(libgrpcpp)
- else:
- EXTRA_OBJECTS.append('-lgrpc++%s' % grpc_variant)
+ # We link different grpc library variants based on whether SSL is enabled.
+ grpc = os.path.join('3rdparty', 'grpc-1.10.0')
+ grpc_variant = '_unsecure' if '@ENABLE_SSL_TRUE@' == '#' else ''
+ libgrpcpp = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgrpc++%s.a' % grpc_variant)
+ libgrpc = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgrpc%s.a' % grpc_variant)
+ libgpr = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgpr.a')
+
+ if os.path.exists(libgrpcpp):
+ EXTRA_OBJECTS.append(libgrpcpp)
+ else:
+ EXTRA_OBJECTS.append('-lgrpc++%s' % grpc_variant)
- if os.path.exists(libgrpc):
- EXTRA_OBJECTS.append(libgrpc)
- else:
- EXTRA_OBJECTS.append('-lgrpc%s' % grpc_variant)
+ if os.path.exists(libgrpc):
+ EXTRA_OBJECTS.append(libgrpc)
+ else:
+ EXTRA_OBJECTS.append('-lgrpc%s' % grpc_variant)
- if os.path.exists(libgpr):
- EXTRA_OBJECTS.append(libgpr)
- else:
- EXTRA_OBJECTS.append('-lgpr')
+ if os.path.exists(libgpr):
+ EXTRA_OBJECTS.append(libgpr)
+ else:
+ EXTRA_OBJECTS.append('-lgpr')
# OSX uses a different linker (llvm-ld) and doesn't support --as-needed
diff --git a/src/resource_provider/local.cpp b/src/resource_provider/local.cpp
index ae23c20..801e6c4 100644
--- a/src/resource_provider/local.cpp
+++ b/src/resource_provider/local.cpp
@@ -42,7 +42,7 @@ Try<Owned<LocalResourceProvider>> LocalResourceProvider::create(
{
// TODO(jieyu): Document the built-in local resource providers.
const hashmap<string, lambda::function<decltype(create)>> creators = {
-#if defined(ENABLE_GRPC) && defined(__linux__)
+#if defined(__linux__)
{"org.apache.mesos.rp.local.storage", &StorageLocalResourceProvider::create}
#endif
};
@@ -63,7 +63,7 @@ Try<Principal> LocalResourceProvider::principal(
// providers.
const hashmap<string, lambda::function<decltype(principal)>>
principalGenerators = {
-#if defined(ENABLE_GRPC) && defined(__linux__)
+#if defined(__linux__)
{"org.apache.mesos.rp.local.storage",
&StorageLocalResourceProvider::principal}
#endif
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index d4ddd13..fed072a 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -48,6 +48,7 @@ set(MESOS_TESTS_UTILS_SRC
http_server_test_helper.cpp
main.cpp
mesos.cpp
+ mock_csi_plugin.cpp
mock_docker.cpp
mock_fetcher.cpp
mock_registrar.cpp
@@ -70,11 +71,6 @@ if (LINUX)
containerizer/setns_test_helper.cpp)
endif ()
-if (ENABLE_GRPC)
- list(APPEND MESOS_TESTS_UTILS_SRC
- mock_csi_plugin.cpp)
-endif ()
-
# All the test sources.
#######################
@@ -92,6 +88,7 @@ set(MESOS_TESTS_SRC
container_daemon_tests.cpp
cram_md5_authentication_tests.cpp
credentials_tests.cpp
+ csi_client_tests.cpp
default_executor_tests.cpp
exception_tests.cpp
executor_http_api_tests.cpp
@@ -216,15 +213,12 @@ if (NOT WIN32)
containerizer/volume_sandbox_path_isolator_tests.cpp)
endif ()
-if (ENABLE_GRPC)
- list(APPEND MESOS_TESTS_SRC
- csi_client_tests.cpp)
-endif ()
-
if (LINUX)
list(APPEND MESOS_TESTS_SRC
+ agent_resource_provider_config_api_tests.cpp
ldcache_tests.cpp
ldd_tests.cpp
+ storage_local_resource_provider_tests.cpp
containerizer/capabilities_tests.cpp
containerizer/cgroups_isolator_tests.cpp
containerizer/cgroups_tests.cpp
@@ -246,13 +240,6 @@ if (LINUX)
containerizer/volume_image_isolator_tests.cpp
containerizer/volume_secret_isolator_tests.cpp)
- # NOTE: These use the `filesystem/linux` isolator.
- if (ENABLE_GRPC)
- list(APPEND MESOS_TESTS_SRC
- agent_resource_provider_config_api_tests.cpp
- storage_local_resource_provider_tests.cpp)
- endif ()
-
if (ENABLE_XFS_DISK_ISOLATOR)
list(APPEND MESOS_TESTS_SRC
containerizer/xfs_quota_tests.cpp)
@@ -366,7 +353,7 @@ if (NOT WIN32)
test-http-framework)
# SLRP-related tests are Linux only and require the test CSI plugin binary.
- if (ENABLE_GRPC AND LINUX)
+ if (LINUX)
add_dependencies(
mesos-tests
test-csi-plugin)