@@ -15,14 +15,22 @@ add_compile_options(-Wall -Werror)
1515
1616find_package (Protobuf REQUIRED )
1717
18+ find_package (gRPC CONFIG QUIET )
19+ if (gRPC_FOUND)
20+ message (STATUS "Found gRPC++: ${gRPC_VERSION} " )
21+ set (GRPCPP_INCLUDE_DIRS $<TARGET_PROPERTY :gRPC ::grpc ++,INTERFACE_INCLUDE_DIRECTORIES >)
22+ set (GRPCPP_LIBRARIES $<TARGET_PROPERTY :gRPC ::grpc ++_unsecure ,INTERFACE_LINK_LIBRARIES >)
23+ set (GRPCPP_PLUGIN_EXEC $<TARGET_FILE :gRPC ::grpc_cpp_plugin >)
24+ else ()
25+ find_package (PkgConfig REQUIRED )
26+ pkg_search_module (GRPCPP REQUIRED QUIET grpc++_unsecure )
27+ set (GRPCPP_PLUGIN_EXEC ${GRPCPP_PREFIX} /bin/grpc_cpp_plugin)
28+ message (STATUS "Found gRPC++: ${GRPCPP_LINK_LIBRARIES} (found version \" ${GRPCPP_VERSION} \" )" )
29+ endif ()
1830
19- find_package (gRPC CONFIG REQUIRED )
20- message (STATUS "Using gRPC ${gRPC_VERSION} " )
21- set (GRPC_CPP_LIB gRPC::grpc++_unsecure)
22- set (GRPC_PLUGIN_EXEC $<TARGET_FILE :gRPC ::grpc_cpp_plugin >)
23-
31+ set (SRC_DIR ${CMAKE_SOURCE_DIR} /src)
2432
25- get_filename_component (PROTO_FILE ". /common/FileExchange.proto" ABSOLUTE )
33+ get_filename_component (PROTO_FILE "${SRC_DIR} /common/FileExchange.proto" ABSOLUTE )
2634get_filename_component (PROTO_PATH "${PROTO_FILE} " PATH )
2735get_filename_component (PROTO_NAME "${PROTO_FILE} " NAME_WE )
2836
@@ -38,40 +46,40 @@ add_custom_command(
3846 ARGS --grpc_out "${CMAKE_CURRENT_BINARY_DIR} "
3947 --cpp_out "${CMAKE_CURRENT_BINARY_DIR} "
4048 -I "${PROTO_PATH} "
41- --plugin=protoc-gen-grpc= "${GRPC_PLUGIN_EXEC } "
49+ --plugin=protoc-gen-grpc= "${GRPCPP_PLUGIN_EXEC } "
4250 "${PROTO_FILE} "
4351 DEPENDS "${PROTO_FILE} " )
4452
4553
4654include_directories (${CMAKE_CURRENT_BINARY_DIR} )
4755
4856add_executable (FileExchangeServer
49- server/main.cpp
50- server/Server.cpp
51- common/FileReader.cpp
52- common/FileWriter.cpp
53- common/FileManager.cpp
54- server/DownloadRequestHandler.cpp
55- server/UploadRequestHandler.cpp
56- common/RequestStatus.cpp
57+ ${SRC_DIR} / server/main.cpp
58+ ${SRC_DIR} / server/Server.cpp
59+ ${SRC_DIR} / common/FileReader.cpp
60+ ${SRC_DIR} / common/FileWriter.cpp
61+ ${SRC_DIR} / common/FileManager.cpp
62+ ${SRC_DIR} / server/DownloadRequestHandler.cpp
63+ ${SRC_DIR} / server/UploadRequestHandler.cpp
64+ ${SRC_DIR} / common/RequestStatus.cpp
5765 ${PROTO_SRCS}
5866 ${GRPC_SRCS} )
59- target_include_directories (FileExchangeServer PRIVATE . /server . /common )
67+ target_include_directories (FileExchangeServer PRIVATE ${SRC_DIR} /server ${SRC_DIR} /common )
6068target_link_libraries (FileExchangeServer
61- ${GRPC_CPP_LIB }
69+ ${GRPCPP_LIBRARIES }
6270 ${Protobuf_LIBRARIES} )
6371
6472add_executable (FileExchangeClient
65- client/main.cpp
66- client/Client.cpp
67- client/DownloadRequestHandler.cpp
68- client/UploadRequestHandler.cpp
69- common/FileReader.cpp
70- common/FileWriter.cpp
73+ ${SRC_DIR} / client/main.cpp
74+ ${SRC_DIR} / client/Client.cpp
75+ ${SRC_DIR} / client/DownloadRequestHandler.cpp
76+ ${SRC_DIR} / client/UploadRequestHandler.cpp
77+ ${SRC_DIR} / common/FileReader.cpp
78+ ${SRC_DIR} / common/FileWriter.cpp
7179 ${PROTO_SRCS}
7280 ${GRPC_SRCS} )
73- target_include_directories (FileExchangeClient PRIVATE . /client . /common )
81+ target_include_directories (FileExchangeClient PRIVATE ${SRC_DIR} /client ${SRC_DIR} /common )
7482target_link_libraries (FileExchangeClient
75- ${GRPC_CPP_LIB }
83+ ${GRPCPP_LIBRARIES }
7684 ${Protobuf_LIBRARIES} )
7785
0 commit comments