From 5ed27ef8b6362ee2a30dd8f6094fa8ca32a97439 Mon Sep 17 00:00:00 2001 From: Tom Jones Date: Mon, 29 Jan 2024 14:38:19 +0000 Subject: build: Discover libepoll-shim on FreeBSD FreeBSD doesn't offer epoll, but an implementation which uses kqueue is available as an external library. On FreeBSD in subsystems which require epoll have cmake look for libepoll-shim. Type: improvement Change-Id: Iafd5406a9e2ebaa53fd94034489ffbbf87a7d040 Signed-off-by: Tom Jones --- src/CMakeLists.txt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/CMakeLists.txt') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9415c4d44fb..68d0a4fe64e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -244,6 +244,21 @@ include(cmake/library.cmake) include(cmake/exec.cmake) include(cmake/plugin.cmake) +############################################################################## +# FreeBSD - use epoll-shim +############################################################################## +set(EPOLL_LIB "") +if("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") + find_path(EPOLL_SHIM_INCLUDE_DIR NAMES sys/epoll.h HINTS /usr/local/include/libepoll-shim) + find_library(EPOLL_SHIM_LIB NAMES epoll-shim HINTS /usr/local/lib) + + if(EPOLL_SHIM_INCLUDE_DIR AND EPOLL_SHIM_LIB) + message(STATUS "Found epoll-shim in ${EPOLL_SHIM_INCLUDE_DIR}") + include_directories(${EPOLL_SHIM_INCLUDE_DIR}) + string(JOIN " " EPOLL_LIB "${EPOLL_SHIM_LIB}") + endif() +endif() + ############################################################################## # subdirs - order matters ############################################################################## -- cgit 1.2.3-korg