Building gRPC support in libprocess with CMake. This patch enables CMake to build code for gRPC support in libprocess along with tests.
Review: https://reviews.apache.org/r/61118/ Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/8021e293 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/8021e293 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/8021e293 Branch: refs/heads/master Commit: 8021e29381dedf4dd8082f6f889e2f4e67505d2a Parents: a2ee950 Author: Chun-Hung Hsiao <[email protected]> Authored: Fri Apr 20 18:17:50 2018 -0700 Committer: Chun-Hung Hsiao <[email protected]> Committed: Fri Apr 20 18:17:50 2018 -0700 ---------------------------------------------------------------------- 3rdparty/libprocess/src/CMakeLists.txt | 6 ++++++ 3rdparty/libprocess/src/tests/CMakeLists.txt | 25 +++++++++++++++++++++++ 2 files changed, 31 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/8021e293/3rdparty/libprocess/src/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/src/CMakeLists.txt b/3rdparty/libprocess/src/CMakeLists.txt index 1eca50a..cf443df 100644 --- a/3rdparty/libprocess/src/CMakeLists.txt +++ b/3rdparty/libprocess/src/CMakeLists.txt @@ -71,6 +71,11 @@ else () subprocess_posix.cpp) endif () +if (ENABLE_GRPC) + list(APPEND PROCESS_SRC + grpc.cpp) +endif () + if (ENABLE_LIBEVENT) list(APPEND PROCESS_SRC libevent.hpp @@ -102,6 +107,7 @@ target_link_libraries( process PUBLIC stout http_parser + $<$<BOOL:${ENABLE_GRPC}>:grpc> $<$<BOOL:${ENABLE_SSL}>:OpenSSL::SSL> $<$<BOOL:${ENABLE_SSL}>:OpenSSL::Crypto>) http://git-wip-us.apache.org/repos/asf/mesos/blob/8021e293/3rdparty/libprocess/src/tests/CMakeLists.txt ---------------------------------------------------------------------- diff --git a/3rdparty/libprocess/src/tests/CMakeLists.txt b/3rdparty/libprocess/src/tests/CMakeLists.txt index d624402..1b2d75d 100644 --- a/3rdparty/libprocess/src/tests/CMakeLists.txt +++ b/3rdparty/libprocess/src/tests/CMakeLists.txt @@ -49,6 +49,28 @@ if (NOT WIN32) reap_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 @@ -62,6 +84,9 @@ target_include_directories(process-interface INTERFACE ..) add_executable(libprocess-tests EXCLUDE_FROM_ALL ${PROCESS_TESTS_SRC}) target_link_libraries(libprocess-tests PRIVATE process-interface) +# NOTE: This is for the generated gRPC headers. +target_include_directories(libprocess-tests PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) + target_compile_definitions( libprocess-tests PRIVATE BUILD_DIR="${CMAKE_CURRENT_BINARY_DIR}")
