@ -3,7 +3,6 @@ cmake_minimum_required(VERSION 3.5.1)
project ( MSClient C CXX )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
add_compile_definitions ( _GLIBCXX_USE_CXX11_ABI=0 )
find_package ( Threads REQUIRED )
@ -18,7 +17,8 @@ if(GRPC_PATH)
set ( protobuf_MODULE_COMPATIBLE TRUE )
find_package ( Protobuf CONFIG REQUIRED )
message ( STATUS "Using protobuf ${protobuf_VERSION}, CMAKE_PREFIX_PATH : ${CMAKE_PREFIX_PATH}" )
elseif ( NOT GRPC_PATH )
elseif ( NOT GRPC_PATH AND grpc_ROOT )
add_compile_definitions ( _GLIBCXX_USE_CXX11_ABI=0 )
if ( EXISTS ${ grpc_ROOT } /lib64 )
set ( gRPC_DIR "${grpc_ROOT}/lib64/cmake/grpc" )
elseif ( EXISTS ${ grpc_ROOT } /lib )
@ -28,12 +28,9 @@ elseif(NOT GRPC_PATH)
add_executable ( protobuf::libprotoc ALIAS protobuf::protoc )
message ( STATUS "serving using grpc_DIR : " ${ gRPC_DIR } )
elseif ( NOT gRPC_DIR AND NOT GRPC_PATH )
message ( "please check gRPC. If the client is compiled separately, you can use the command: cmake -D GRPC_PATH=xxx" )
message ( "XXX is the gRPC installation path" )
message ( FATAL_ERROR "please check gRPC. If the client is compiled separately, you can use the command: cmake -D GRPC_PATH=xxx\n" "XXX is the gRPC installation path" )
endif ( )
set ( _PROTOBUF_LIBPROTOBUF protobuf::libprotobuf )
set ( _REFLECTION gRPC::grpc++_reflection )
if ( CMAKE_CROSSCOMPILING )
find_program ( _PROTOBUF_PROTOC protoc )
else ( )
@ -45,7 +42,6 @@ endif()
find_package ( gRPC CONFIG REQUIRED )
message ( STATUS "Using gRPC ${gRPC_VERSION}" )
set ( _GRPC_GRPCPP gRPC::grpc++ )
if ( CMAKE_CROSSCOMPILING )
find_program ( _GRPC_CPP_PLUGIN_EXECUTABLE grpc_cpp_plugin )
else ( )
@ -75,13 +71,10 @@ add_custom_command(
include_directories ( "${CMAKE_CURRENT_BINARY_DIR}" )
# T a r g e t s g r e e t e r _ [ a s y n c _ ] ( c l i e n t | s e r v e r )
foreach ( _target
m s _ c l i e n t )
add_executable ( ${ _target } "${_target}.cc"
$ { h w _ p r o t o _ s r c s }
$ { h w _ g r p c _ s r c s } )
target_link_libraries ( ${ _target }
$ { _ R E F L E C T I O N }
$ { _ G R P C _ G R P C P P }
$ { _ P R O T O B U F _ L I B P R O T O B U F } )
endforeach ( )
add_executable ( ms_client "ms_client.cc"
$ { h w _ p r o t o _ s r c s }
$ { h w _ g r p c _ s r c s } )
target_link_libraries ( ms_client
g R P C : : g r p c + + _ r e f l e c t i o n
g R P C : : g r p c + +
p r o t o b u f : : l i b p r o t o b u f )