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.

OSDep.cmake 3.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. # Platform specific configuration
  2. IF(CMAKE_SYSTEM_NAME MATCHES "^.*BSD$|DragonFly")
  3. ADD_COMPILE_OPTIONS(-DFREEBSD -D_BSD_SOURCE)
  4. SET(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_BSD_SOURCE")
  5. CONFIGURE_FILE(freebsd/rspamd.sh.in freebsd/rspamd @ONLY)
  6. MESSAGE(STATUS "Configuring for BSD system")
  7. # Find util library
  8. ProcessPackage(LIBUTIL LIBRARY util INCLUDE libutil.h
  9. ROOT ${LIBUTIL_ROOT_DIR} OPTIONAL)
  10. IF(WITH_LIBUTIL)
  11. SET(HAVE_LIBUTIL_H 1)
  12. LIST(APPEND CMAKE_REQUIRED_LIBRARIES util)
  13. CHECK_FUNCTION_EXISTS(pidfile_open HAVE_PIDFILE)
  14. CHECK_FUNCTION_EXISTS(pidfile_fileno HAVE_PIDFILE_FILENO)
  15. ENDIF()
  16. IF(CMAKE_SYSTEM_NAME MATCHES "^NetBSD$")
  17. LIST(APPEND CMAKE_REQUIRED_LIBRARIES rt)
  18. ENDIF()
  19. SET(POE_LOOP "Loop::Kqueue")
  20. SET(TAR "gtar")
  21. ENDIF()
  22. IF(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
  23. ADD_COMPILE_OPTIONS(-D_BSD_SOURCE -DDARWIN)
  24. SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS} -undefined dynamic_lookup")
  25. IF(ENABLE_LUAJIT MATCHES "ON")
  26. SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pagezero_size 10000 -image_base 100000000")
  27. ENDIF(ENABLE_LUAJIT MATCHES "ON")
  28. MESSAGE(STATUS "Configuring for Darwin")
  29. SET(TAR "gnutar")
  30. SET(CMAKE_FIND_FRAMEWORK "NEVER")
  31. ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
  32. IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
  33. ADD_COMPILE_OPTIONS(-D_GNU_SOURCE -DLINUX)
  34. SET(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_GNU_SOURCE")
  35. # Workaround with architecture specific includes
  36. #IF(IS_DIRECTORY "/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/")
  37. # INCLUDE_DIRECTORIES("/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/")
  38. # LIST(APPEND CMAKE_REQUIRED_INCLUDES "/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/")
  39. #ENDIF(IS_DIRECTORY "/usr/include/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu/")
  40. LIST(APPEND CMAKE_REQUIRED_LIBRARIES rt)
  41. LIST(APPEND CMAKE_REQUIRED_LIBRARIES dl)
  42. LIST(APPEND CMAKE_REQUIRED_LIBRARIES resolv)
  43. MESSAGE(STATUS "Configuring for Linux")
  44. IF(EXISTS "/etc/debian_version")
  45. SET(LINUX_START_SCRIPT "rspamd_debian.in")
  46. ELSE(EXISTS "/etc/debian_version")
  47. SET(LINUX_START_SCRIPT "rspamd_rh.in")
  48. ENDIF(EXISTS "/etc/debian_version")
  49. SET(POE_LOOP "XS::Loop::EPoll")
  50. ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
  51. IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
  52. IF("${CMAKE_C_COMPILER_ID}" MATCHES SunPro)
  53. SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Xa -xregs=no%frameptr -xstrconst -xc99")
  54. IF(ENABLE_OPTIMIZATION MATCHES "ON")
  55. SET(CMAKE_C_OPT_FLAGS "-fast -xdepend")
  56. ELSE(ENABLE_OPTIMIZATION MATCHES "ON")
  57. SET(CMAKE_C_OPT_FLAGS "-xO0")
  58. ENDIF(ENABLE_OPTIMIZATION MATCHES "ON")
  59. ENDIF("${CMAKE_C_COMPILER_ID}" MATCHES SunPro)
  60. ADD_COMPILE_OPTIONS(-D__EXTENSIONS__ -DSOLARIS -D_POSIX_SOURCE -D_POSIX_C_SOURCE=200112)
  61. LIST(APPEND CMAKE_REQUIRED_LIBRARIES rt)
  62. LIST(APPEND CMAKE_REQUIRED_LIBRARIES dl)
  63. LIST(APPEND CMAKE_REQUIRED_LIBRARIES resolv)
  64. LIST(APPEND CMAKE_REQUIRED_LIBRARIES nsl)
  65. LIST(APPEND CMAKE_REQUIRED_LIBRARIES socket)
  66. LIST(APPEND CMAKE_REQUIRED_LIBRARIES umem)
  67. # Ugly hack, but FindOpenSSL on Solaris does not link with libcrypto
  68. SET(CMAKE_VERBOSE_MAKEFILE ON)
  69. SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
  70. SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib:${RSPAMD_LIBDIR}")
  71. ENDIF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")