From 2934dedd1c71aa9af20a266c827c3f8e02c13cd5 Mon Sep 17 00:00:00 2001 From: Ralf Habacker Date: Sat, 20 Oct 2018 22:22:20 +0200 Subject: [PATCH] Add cmake support for DBUS_HAVE_LINUX_EPOLL Reviewed-by: Simon McVittie Bug: https://gitlab.freedesktop.org/dbus/dbus/merge_requests/18 --- cmake/ConfigureChecks.cmake | 10 ++++++++++ cmake/config.h.cmake | 3 +++ cmake/dbus/CMakeLists.txt | 7 +++++++ 3 files changed, 20 insertions(+) diff --git a/cmake/ConfigureChecks.cmake b/cmake/ConfigureChecks.cmake index 1b767e0d1..b45ab7635 100644 --- a/cmake/ConfigureChecks.cmake +++ b/cmake/ConfigureChecks.cmake @@ -3,6 +3,7 @@ include(CheckIncludeFiles) include(CheckSymbolExists) include(CheckStructMember) include(CheckTypeSize) +include(CheckCSourceCompiles) check_include_file(alloca.h HAVE_ALLOCA_H) check_include_file(byteswap.h HAVE_BYTESWAP_H) @@ -69,6 +70,15 @@ check_symbol_exists(setrlimit "sys/resource.h;sys/time.h" HAVE_SETRLIMIT) check_struct_member(cmsgcred cmcred_pid "sys/types.h;sys/socket.h" HAVE_CMSGCRED) # dbus-sysdeps.c +CHECK_C_SOURCE_COMPILES(" +#ifndef __linux__ +#error This is not Linux +#endif +#include +int main() { +epoll_create1 (EPOLL_CLOEXEC); +}" DBUS_HAVE_LINUX_EPOLL) + # missing: # DBUS_HAVE_GCC33_GCOV diff --git a/cmake/config.h.cmake b/cmake/config.h.cmake index c296c05ad..71a028379 100644 --- a/cmake/config.h.cmake +++ b/cmake/config.h.cmake @@ -217,6 +217,9 @@ #cmakedefine HAVE_SETRLIMIT 1 #cmakedefine HAVE_UNIX_FD_PASSING 1 +/* Define to use epoll(4) on Linux */ +#cmakedefine DBUS_HAVE_LINUX_EPOLL 1 + // structs /* Define to 1 if you have struct cmsgred */ #cmakedefine HAVE_CMSGCRED 1 diff --git a/cmake/dbus/CMakeLists.txt b/cmake/dbus/CMakeLists.txt index 33f2be600..6c11a4ceb 100644 --- a/cmake/dbus/CMakeLists.txt +++ b/cmake/dbus/CMakeLists.txt @@ -233,6 +233,13 @@ else (WIN32) ) endif (WIN32) +if(DBUS_HAVE_LINUX_EPOLL) + set(DBUS_UTIL_SOURCES + ${DBUS_UTIL_SOURCES} + ${DBUS_DIR}/dbus-socket-set-epoll.c + ) +endif() + set(libdbus_SOURCES ${DBUS_LIB_SOURCES} ${DBUS_SHARED_SOURCES} -- 2.47.3