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

Added logic to disable capnp builds when needed

This commit is contained in:
Pavel Odintsov 2022-04-30 16:52:25 +01:00
parent f96e9dd4d1
commit a20ba12419
2 changed files with 19 additions and 6 deletions

View File

@ -165,6 +165,12 @@ if (ENABLE_NETMAP_SUPPORT)
add_definitions(-DNETMAP_PLUGIN)
endif()
# It's enabled by default but can be disabled using:
# cmake .. -DENABLE_CAPNP_SUPPORT=OFF
option(ENABLE_CAPNP_SUPPORT "Enable Cap'N'Proto support build" ON)
if (ENABLE_CAPNP_SUPPORT)
find_program(CAPNP_BINARY capnp PATHS "${CAPNP_CUSTOM_INSTALL_PATH}/bin" NO_DEFAULT_PATH)
if (CAPNP_BINARY)
@ -184,6 +190,8 @@ ADD_CUSTOM_COMMAND(
add_library(simple_packet_capnp STATIC simple_packet_capnp/simple_packet.capnp.c++)
endif()
# Our LPM library
add_library(patricia STATIC libpatricia/patricia.c)
@ -474,9 +482,9 @@ if (ENABLE_OPENSSL_SUPPORT)
endif()
endif()
SET(CAPNP_SUPPORT TRUE)
if (ENABLE_CAPNP_SUPPORT)
add_definitions(-DENABLE_CAPNP)
if (CAPNP_SUPPORT)
find_library(CAPNP_LIBRARY_PATH NAMES capnp PATHS "${CAPNP_CUSTOM_INSTALL_PATH}/lib" NO_DEFAULT_PATH)
find_library(CAPNP_KJ_LIBRARY_PATH NAMES kj PATHS "${CAPNP_CUSTOM_INSTALL_PATH}/lib" NO_DEFAULT_PATH)
@ -487,12 +495,14 @@ if (CAPNP_SUPPORT)
endif()
include_directories("${CAPNP_CUSTOM_INSTALL_PATH}/include")
target_link_libraries(simple_packet_capnp ${CAPNP_LIBRARY_PATH} ${CAPNP_KJ_LIBRARY_PATH})
# Link it with cap'n'p stuff
target_link_libraries(fast_library simple_packet_capnp)
endif()
target_link_libraries(simple_packet_capnp ${CAPNP_LIBRARY_PATH} ${CAPNP_KJ_LIBRARY_PATH})
# Link it with cap'n'p stuff
target_link_libraries(fast_library simple_packet_capnp)
### Find mongo-c
find_path(MONGOC_INCLUDES_FOLDER NAMES libmongoc-1.0/mongoc.h PATHS "${MONGO_C_CUSTOM_INSTALL_PATH}/include" NO_DEFAULT_PATH)

View File

@ -1271,6 +1271,7 @@ bool set_boost_process_name(boost::thread* thread, std::string process_name) {
return true;
}
#ifdef ENABLE_CAPNP
bool read_simple_packet(uint8_t* buffer, size_t buffer_length, simple_packet_t& packet) {
extern log4cpp::Category& logger;
@ -1414,6 +1415,8 @@ bool write_simple_packet(int fd, simple_packet_t& packet, bool populate_ipv6) {
return true;
}
#endif
// Represent IPv6 cidr subnet in string form
std::string print_ipv6_cidr_subnet(subnet_ipv6_cidr_mask_t subnet) {
return print_ipv6_address(subnet.subnet_address) + "/" + std::to_string(subnet.cidr_prefix_length);