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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. IF(ENABLE_STATIC MATCHES "ON")
  56. ADD_LIBRARY(rspamd-ev STATIC ${LIBEVSRC})
  57. ELSE()
  58. ADD_LIBRARY(rspamd-ev SHARED ${LIBEVSRC})
  59. ENDIF()
  60. include_directories("${CMAKE_CURRENT_BINARY_DIR}")
  61. ADD_DEFINITIONS("-DEV_CONFIG_H=\"libev-config.h\""
  62. -DEV_MULTIPLICITY=1
  63. -DEV_USE_FLOOR=1
  64. -DEV_NO_THREADS=1 # We do not have threads in Rspamd!
  65. -DEV_FEATURES=127 # Enable all features
  66. )
  67. IF(HAVE_EVENTFD)
  68. ADD_DEFINITIONS(-DEV_USE_EVENTFD=1)
  69. ENDIF()
  70. IF(ENABLE_FULL_DEBUG MATCHES "ON")
  71. ADD_DEFINITIONS(-DEV_VERIFY=3)
  72. ENDIF()
  73. INSTALL(TARGETS rspamd-ev LIBRARY DESTINATION ${RSPAMD_LIBDIR})