You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CMakeLists.txt 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. SET(LIBEVSRC ev.c)
  2. CHECK_INCLUDE_FILES(sys/types.h HAVE_SYS_TYPES_H)
  3. CHECK_INCLUDE_FILES(sys/inotify.h HAVE_SYS_INOTIFY_H)
  4. CHECK_INCLUDE_FILES(sys/epoll.h HAVE_SYS_EPOLL_H)
  5. CHECK_INCLUDE_FILES("sys/types.h;sys/event.h;sys/time.h" HAVE_SYS_EVENT_H)
  6. CHECK_INCLUDE_FILES(sys/queue.h HAVE_SYS_QUEUE_H)
  7. CHECK_INCLUDE_FILES(sys/stat.h HAVE_SYS_STAT_H)
  8. CHECK_INCLUDE_FILES(sys/signalfd.h HAVE_SYS_SIGNALFD_H)
  9. CHECK_INCLUDE_FILES(port.h HAVE_PORT_H)
  10. CHECK_INCLUDE_FILES(poll.h HAVE_POLL_H)
  11. CHECK_INCLUDE_FILES(sys/select.h HAVE_SYS_SELECT_H)
  12. CHECK_INCLUDE_FILES(sys/eventfd.h HAVE_SYS_EVENTFD_H)
  13. IF(HAVE_SYS_INOTIFY_H)
  14. CHECK_SYMBOL_EXISTS(inotify_init "sys/types.h;sys/inotify.h" HAVE_INOTIFY_INIT)
  15. ENDIF()
  16. IF(HAVE_SYS_EPOLL_H)
  17. CHECK_SYMBOL_EXISTS(epoll_ctl "sys/types.h;sys/epoll.h" HAVE_EPOLL_CTL)
  18. ENDIF()
  19. IF(HAVE_SYS_EVENT_H)
  20. CHECK_SYMBOL_EXISTS(kqueue "sys/types.h;sys/event.h;sys/time.h" HAVE_KQUEUE)
  21. ENDIF()
  22. IF(HAVE_PORT_H)
  23. CHECK_SYMBOL_EXISTS(port_create port.h HAVE_PORT_CREATE)
  24. ENDIF()
  25. IF(HAVE_POLL_H)
  26. CHECK_SYMBOL_EXISTS(poll poll.h HAVE_POLL)
  27. ENDIF()
  28. IF(HAVE_SYS_SELECT_H)
  29. CHECK_SYMBOL_EXISTS(select sys/select.h HAVE_SELECT)
  30. ENDIF()
  31. IF(HAVE_SYS_EVENTFD_H)
  32. CHECK_SYMBOL_EXISTS(eventfd sys/eventfd.h HAVE_EVENTFD)
  33. ENDIF()
  34. IF(HAVE_SYS_SIGNALFD_H)
  35. CHECK_SYMBOL_EXISTS(signalfd sys/signalfd.h HAVE_EVENTFD)
  36. ENDIF()
  37. CHECK_SYMBOL_EXISTS(time.h nanosleep HAVE_NANOSLEEP)
  38. # check first without rt
  39. CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME)
  40. CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_LIBRT)
  41. # then check with rt
  42. CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_CLOCK_GETTIME)
  43. CHECK_LIBRARY_EXISTS(m ceil "" HAVE_LIBM)
  44. CONFIGURE_FILE(config.h.in libev-config.h)
  45. ADD_LIBRARY(rspamd-ev SHARED ${LIBEVSRC})
  46. ADD_DEFINITIONS("-DEV_CONFIG_H=\"${CMAKE_CURRENT_BINARY_DIR}/libev-config.h\""
  47. -DEV_MULTIPLICITY=1
  48. -DEV_USE_FLOOR=1
  49. -DEV_NO_THREADS=1 # We do not have threads in Rspamd!
  50. -DEV_FEATURES=127 # Enable all features
  51. )
  52. IF(HAVE_EVENTFD)
  53. ADD_DEFINITIONS(-DEV_USE_EVENTFD=1)
  54. ENDIF()
  55. IF(ENABLE_FULL_DEBUG MATCHES "ON")
  56. ADD_DEFINITIONS(-DEV_VERIFY=3)
  57. ENDIF()
  58. INSTALL(TARGETS rspamd-ev LIBRARY DESTINATION ${RSPAMD_LIBDIR})