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) # GRPC and Protocol Buffers libraries location set(GRPC_ROOT ${LIB_BASE_DIR}/grpc-build) # 运行参数 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -pthread -fPIC") list(APPEND CMAKE_PREFIX_PATH "${GRPC_ROOT}") find_package(Threads REQUIRED) message("${BoldGreen} ${CMAKE_PREFIX_PATH} ${ColourReset}") find_package(gRPC CONFIG REQUIRED) message(${BoldGreen} GRPC_LIBRARY_DIR:${GRPC_LIBRARY_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 ${GRPC_ROOT}/bin/protoc ARGS --grpc_out "${PROTO_DIR}" --cpp_out "${PROTO_DIR}" -I "${PROTO_DIR}" --plugin=protoc-gen-grpc=${GRPC_ROOT}/bin/grpc_cpp_plugin helloworld.proto) add_library(hello_proto STATIC ${PROTO_DIR}/helloworld.pb.cc ${PROTO_DIR}/helloworld.pb.h ${PROTO_DIR}/helloworld.grpc.pb.cc ${PROTO_DIR}/helloworld.grpc.pb.h) target_include_directories(hello_proto PUBLIC ${GRPC_INCLUDE_DIR} ${PROTOBUF_INCLUDE_DIR}) target_link_libraries(hello_proto ${GRPC_CLIENT_LIBS}) 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 ${GRPC_CLIENT_LIBS}) endforeach()