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
/**