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.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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(memory.h HAVE_MEMORY_H)
  12. CHECK_INCLUDE_FILES(sys/select.h HAVE_SYS_SELECT_H)
  13. CHECK_INCLUDE_FILES(sys/eventfd.h HAVE_SYS_EVENTFD_H)
  14. CHECK_INCLUDE_FILES(sys/timerfd.h HAVE_SYS_TIMERFD_H)
  15. CHECK_INCLUDE_FILES(linux/fs.h HAVE_LINUX_FS_H)
  16. CHECK_INCLUDE_FILES(linux/aio_abi.h HAVE_LINUX_AIO_ABI_H)
  17. IF(HAVE_SYS_INOTIFY_H)
  18. CHECK_SYMBOL_EXISTS(inotify_init "sys/types.h;sys/inotify.h" HAVE_INOTIFY_INIT)
  19. ENDIF()
  20. IF(HAVE_SYS_EPOLL_H)
  21. CHECK_SYMBOL_EXISTS(epoll_ctl "sys/types.h;sys/epoll.h" HAVE_EPOLL_CTL)
  22. ENDIF()
  23. IF(HAVE_SYS_EVENT_H)
  24. CHECK_SYMBOL_EXISTS(kqueue "sys/types.h;sys/event.h;sys/time.h" HAVE_KQUEUE)
  25. ENDIF()
  26. IF(HAVE_PORT_H)
  27. CHECK_SYMBOL_EXISTS(port_create port.h HAVE_PORT_CREATE)
  28. ENDIF()
  29. IF(HAVE_POLL_H)
  30. CHECK_SYMBOL_EXISTS(poll poll.h HAVE_POLL)
  31. ENDIF()
  32. IF(HAVE_SYS_SELECT_H)
  33. CHECK_SYMBOL_EXISTS(select sys/select.h HAVE_SELECT)
  34. ENDIF()
  35. IF(HAVE_SYS_EVENTFD_H)
  36. CHECK_SYMBOL_EXISTS(eventfd sys/eventfd.h HAVE_EVENTFD)
  37. ENDIF()
  38. IF(HAVE_SYS_SIGNALFD_H)
  39. CHECK_SYMBOL_EXISTS(signalfd sys/signalfd.h HAVE_SIGNALFD)
  40. ENDIF()
  41. IF(HAVE_SYS_TIMERFD_H)
  42. CHECK_SYMBOL_EXISTS(timerfd_create sys/timerfd.h HAVE_TIMERFD)
  43. ENDIF()
  44. IF(HAVE_LINUX_FS_H)
  45. CHECK_SYMBOL_EXISTS(RWF_SUPPORTED linux/fs.h HAVE_KERNEL_RWF_T)
  46. ENDIF()
  47. CHECK_SYMBOL_EXISTS(time.h nanosleep HAVE_NANOSLEEP)
  48. # check first without rt
  49. CHECK_FUNCTION_EXISTS(clock_gettime HAVE_CLOCK_GETTIME)
  50. CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_LIBRT)
  51. # then check with rt
  52. CHECK_LIBRARY_EXISTS(rt clock_gettime "" HAVE_CLOCK_GETTIME)
  53. CHECK_LIBRARY_EXISTS(m ceil "" HAVE_LIBM)
  54. CONFIGURE_FILE(config.h.in libev-config.h)
  55. ADD_LIBRARY(rspamd-ev SHARED ${LIBEVSRC})
  56. include_directories("${CMAKE_CURRENT_BINARY_DIR}")
  57. ADD_DEFINITIONS("-DEV_CONFIG_H=\"libev-config.h\""
  58. -DEV_MULTIPLICITY=1
  59. -DEV_USE_FLOOR=1
  60. -DEV_NO_THREADS=1 # We do not have threads in Rspamd!
  61. -DEV_FEATURES=127 # Enable all features
  62. )
  63. IF(HAVE_EVENTFD)
  64. ADD_DEFINITIONS(-DEV_USE_EVENTFD=1)
  65. ENDIF()
  66. IF(ENABLE_FULL_DEBUG MATCHES "ON")
  67. ADD_DEFINITIONS(-DEV_VERIFY=3)
  68. ENDIF()
  69. INSTALL(TARGETS rspamd-ev LIBRARY DESTINATION ${RSPAMD_LIBDIR})