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

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