Skip to content

Commit cd9cb78

Browse files
committed
Update build system and package layout
1 parent 0b4b032 commit cd9cb78

28 files changed

+33
-25
lines changed

CMakeLists.txt

Lines changed: 33 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,22 @@ add_compile_options(-Wall -Werror)
1515

1616
find_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)
2634
get_filename_component(PROTO_PATH "${PROTO_FILE}" PATH)
2735
get_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

4654
include_directories(${CMAKE_CURRENT_BINARY_DIR})
4755

4856
add_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)
6068
target_link_libraries(FileExchangeServer
61-
${GRPC_CPP_LIB}
69+
${GRPCPP_LIBRARIES}
6270
${Protobuf_LIBRARIES})
6371

6472
add_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)
7482
target_link_libraries(FileExchangeClient
75-
${GRPC_CPP_LIB}
83+
${GRPCPP_LIBRARIES}
7684
${Protobuf_LIBRARIES})
7785

File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)