1
0
Fork 0
mirror of https://github.com/pavel-odintsov/fastnetmon synced 2024-06-08 12:36:07 +02:00

Switched gRPC search logic to find_package() for Windows platforms

This commit is contained in:
Pavel Odintsov 2023-04-03 22:36:14 +01:00
parent 396df68c8c
commit e3fa426014

View File

@ -485,20 +485,36 @@ if (ENABLE_GOBGP_SUPPORT)
add_definitions(-DENABLE_GOBGP)
add_library(gobgp_action STATIC actions/gobgp_action.cpp)
find_path(GRPC_INCLUDES_FOLDER NAMES grpc/grpc.h PATHS "${GRPC_CUSTOM_INSTALL_PATH}/include" ${DISABLE_DEFAULT_PATH_SEARCH_VAR})
find_library(GRPC_LIBRARY_GRPC_PATH NAMES grpc PATHS "${GRPC_CUSTOM_INSTALL_PATH}/lib" ${DISABLE_DEFAULT_PATH_SEARCH_VAR})
find_library(GRPC_LIBRARY_GPR_PATH NAMES gpr PATHS "${GRPC_CUSTOM_INSTALL_PATH}/lib" ${DISABLE_DEFAULT_PATH_SEARCH_VAR})
find_library(GRPC_LIBRARY_GRPC_CPP_PATH NAMES grpc++ PATHS "${GRPC_CUSTOM_INSTALL_PATH}/lib" ${DISABLE_DEFAULT_PATH_SEARCH_VAR})
# We use find_package for Windows as our approach for *nix platforms leads to bunch of linking errors
if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
find_package(gRPC CONFIG REQUIRED)
if (gRPC_FOUND)
message(STATUS "Found gRPC")
else()
message(FATAL_ERROR "NOT Found gRPC module")
endif()
if (GRPC_INCLUDES_FOLDER AND GRPC_LIBRARY_GRPC_PATH AND GRPC_LIBRARY_GPR_PATH AND GRPC_LIBRARY_GRPC_CPP_PATH)
target_link_libraries(gobgp_action gRPC::grpc gRPC::grpc++)
else()
find_path(GRPC_INCLUDES_FOLDER NAMES grpc/grpc.h PATHS "${GRPC_CUSTOM_INSTALL_PATH}/include" ${DISABLE_DEFAULT_PATH_SEARCH_VAR})
find_library(GRPC_LIBRARY_GRPC_PATH NAMES grpc PATHS "${GRPC_CUSTOM_INSTALL_PATH}/lib" ${DISABLE_DEFAULT_PATH_SEARCH_VAR})
find_library(GRPC_LIBRARY_GPR_PATH NAMES gpr PATHS "${GRPC_CUSTOM_INSTALL_PATH}/lib" ${DISABLE_DEFAULT_PATH_SEARCH_VAR})
find_library(GRPC_LIBRARY_GRPC_CPP_PATH NAMES grpc++ PATHS "${GRPC_CUSTOM_INSTALL_PATH}/lib" ${DISABLE_DEFAULT_PATH_SEARCH_VAR})
if (GRPC_INCLUDES_FOLDER AND GRPC_LIBRARY_GRPC_PATH AND GRPC_LIBRARY_GPR_PATH AND GRPC_LIBRARY_GRPC_CPP_PATH)
include_directories(${GRPC_INCLUDES_FOLDER})
target_link_libraries(gobgp_action ${GRPC_LIBRARY_GRPC_PATH})
target_link_libraries(gobgp_action ${GRPC_LIBRARY_GPR_PATH})
target_link_libraries(gobgp_action ${GRPC_LIBRARY_GRPC_CPP_PATH})
message(STATUS "Found gRPC library: ${GRPC_LIBRARY_GRPC_PATH} ${GRPC_LIBRARY_GPR_PATH} ${GRPC_LIBRARY_GRPC_CPP_PATH}")
else()
else()
message(FATAL_ERROR "Could not find gRPC library")
endif()
endif()
if (LINK_WITH_ABSL)
@ -601,9 +617,16 @@ if (ENABLE_GOBGP_SUPPORT)
target_link_libraries(fastnetmon_api_client absl::base absl::synchronization)
endif()
target_link_libraries(fastnetmon_api_client ${GRPC_LIBRARY_GPR_PATH})
target_link_libraries(fastnetmon_api_client ${GRPC_LIBRARY_GRPC_CPP_PATH})
target_link_libraries(fastnetmon_api_client ${GRPC_LIBRARY_GRPC_PATH})
# We use another way to specify dependencies for Windows as our standard approach clearly does not work
if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
target_link_libraries(fastnetmon_api_client gRPC::grpc gRPC::grpc++)
else()
target_link_libraries(fastnetmon_api_client ${GRPC_LIBRARY_GPR_PATH})
target_link_libraries(fastnetmon_api_client ${GRPC_LIBRARY_GRPC_CPP_PATH})
target_link_libraries(fastnetmon_api_client ${GRPC_LIBRARY_GRPC_PATH})
endif()
target_link_libraries(fastnetmon_api_client fastnetmon_grpc_pb_cc)
target_link_libraries(fastnetmon_api_client fastnetmon_pb_cc)
target_link_libraries(fastnetmon_api_client ${PROTOCOL_BUFFERS_LIBRARY_PATH})
@ -612,9 +635,14 @@ if (ENABLE_GOBGP_SUPPORT)
target_link_libraries(fastnetmon ${LIBKAFKA_CPP_LIBRARY_PATH})
endif()
target_link_libraries(fastnetmon ${GRPC_LIBRARY_GPR_PATH})
target_link_libraries(fastnetmon ${GRPC_LIBRARY_GRPC_CPP_PATH})
target_link_libraries(fastnetmon ${GRPC_LIBRARY_GRPC_PATH})
if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
target_link_libraries(fastnetmon gRPC::grpc gRPC::grpc++)
else()
target_link_libraries(fastnetmon ${GRPC_LIBRARY_GPR_PATH})
target_link_libraries(fastnetmon ${GRPC_LIBRARY_GRPC_CPP_PATH})
target_link_libraries(fastnetmon ${GRPC_LIBRARY_GRPC_PATH})
endif()
target_link_libraries(fastnetmon fastnetmon_grpc_pb_cc)
target_link_libraries(fastnetmon fastnetmon_pb_cc)
target_link_libraries(fastnetmon ${PROTOCOL_BUFFERS_LIBRARY_PATH})