~singpolyma/biboumi

b72908548dc841de65dc9288a96c1abe648acc46 — Florent Le Coz 9 years ago b569240
Let the user choose the poller to use through cmake POLLER option

Use ccmake, or cmake -i, or cmake -DPOLLER=EPOLL, for example
3 files changed, 11 insertions(+), 4 deletions(-)

M CMakeLists.txt
M config.h.cmake
M src/network/poller.hpp
M CMakeLists.txt => CMakeLists.txt +7 -1
@@ 24,6 24,12 @@ include_directories(${ICONV_INCLUDE_DIR})
# coming from these headers.
include_directories(SYSTEM ${CRYPTO++_INCLUDE_DIR})

set(POLLER "POLL" CACHE STRING
  "Choose the poller between POLL and EPOLL (Linux-only)")
if((NOT ${POLLER} MATCHES "POLL") AND
    (NOT ${POLLER} MATCHES "EPOLL"))
  message(FATAL_ERROR "POLLER must be either POLL or EPOLL")
endif()
#
## utils
#


@@ 95,4 101,4 @@ target_link_libraries(test
  utils
  config)

CONFIGURE_FILE(config.h.cmake src/config.h @ONLY)
configure_file(config.h.cmake src/config.h)

M config.h.cmake => config.h.cmake +1 -0
@@ 1,1 1,2 @@
#cmakedefine ICONV_SECOND_ARGUMENT_IS_CONST
#cmakedefine POLLER ${POLLER}

M src/network/poller.hpp => src/network/poller.hpp +3 -3
@@ 9,11 9,9 @@
#define POLL 1
#define EPOLL 2
#define KQUEUE 3

#include <config.h>
#ifndef POLLER
  // Default standard poller
  #define POLLER EPOLL
 #define POLLER POLL
#endif

#if POLLER == POLL


@@ 21,6 19,8 @@
 #define MAX_POLL_FD_NUMBER 4096
#elif POLLER == EPOLL
  #include <sys/epoll.h>
#else
  #error Invalid POLLER value
#endif

/**