|
|
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
project(helloworld_grpc)
# set color
string(ASCII 27 Esc)
set(ColourReset "${Esc}[m")
set(BoldGreen "${Esc}[1;32m")
set(BoldRed "${Esc}[31m")
set(LIB_BASE_DIR /root/CXX_ENVS/wenet_runtime)
# 运行参数
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -pthread -fPIC")
include(../cmake-linux/grpc.cmake)
message(${BoldGreen} GRPC_LIBRARY_DIR:${GRPC_LIBRARY_DIR} \n
GRPC_INCLUDE_DIR:${GRPC_INCLUDE_DIR} \n
GRPC_BINARY_DIR:${GRPC_BINARY_DIR} \n
grpc_cpp_plugin:${GRPC_BINARY_DIR}/grpc_cpp_plugin${ColourReset})
set(PROTO_DIR ${CMAKE_CURRENT_SOURCE_DIR})
add_custom_command( OUTPUT ${PROTO_DIR}/helloworld.pb.cc
${PROTO_DIR}/helloworld.pb.h
${PROTO_DIR}/helloworld.grpc.pb.cc
${PROTO_DIR}/helloworld.grpc.pb.h
COMMAND ${PROTOBUF_PROTOC}
ARGS --grpc_out "${PROTO_DIR}"
--cpp_out "${PROTO_DIR}"
-I "${PROTO_DIR}"
--plugin=protoc-gen-grpc=${GRPC_BINARY_DIR}/grpc_cpp_plugin
helloworld.proto)
add_library(hello_proto SHARED ${PROTO_DIR}/helloworld.pb.cc
${PROTO_DIR}/helloworld.pb.h
${PROTO_DIR}/helloworld.grpc.pb.cc
${PROTO_DIR}/helloworld.grpc.pb.h)
target_link_libraries(hello_proto ${REFLECTION}
${GRPC_GRPCPP}
${PROTOBUF_LIBPROTOBUF})
foreach(_target greeter_client greeter_server
greeter_async_client greeter_async_client2 greeter_async_server)
add_executable(${_target} "${_target}.cc")
target_link_libraries(${_target} hello_proto ${REFLECTION}
${GRPC_GRPCPP}
${PROTOBUF_LIBPROTOBUF})
endforeach()
|