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 6.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. # Librspamdclient
  2. SET(LIBRSPAMDCLIENTSRC client/librspamdclient.c)
  3. # Librspamd-util
  4. SET(LIBRSPAMDUTILSRC ../src/aio_event.c
  5. ../src/bloom.c
  6. ../src/diff.c
  7. ../src/fstring.c
  8. ../src/fuzzy.c
  9. ../src/hash.c
  10. ../src/http.c
  11. ../src/logger.c
  12. ../src/map.c
  13. ../src/memcached.c
  14. ../src/mem_pool.c
  15. ../src/printf.c
  16. ../src/radix.c
  17. ../src/rrd.c
  18. ../src/trie.c
  19. ../src/upstream.c
  20. ../src/util.c)
  21. # kvstorageclient
  22. SET(LIBRKVSTORAGESRC kvstorage/libkvstorageclient.c)
  23. # Librspamdserver
  24. SET(LIBRSPAMDSERVERSRC
  25. ../src/binlog.c
  26. ../src/buffer.c
  27. ../src/cfg_utils.c
  28. ../src/cfg_rcl.c
  29. ../src/cfg_xml.c
  30. ../src/dkim.c
  31. ../src/dns.c
  32. ../src/dynamic_cfg.c
  33. ../src/events.c
  34. ../src/html.c
  35. ../src/proxy.c
  36. ../src/roll_history.c
  37. ../src/settings.c
  38. ../src/spf.c
  39. ../src/statfile.c
  40. ../src/statfile_sync.c
  41. ../src/symbols_cache.c
  42. ../src/url.c
  43. ../src/view.c)
  44. # Librspamd mime
  45. SET(LIBRSPAMDMIMESRC
  46. ../src/expressions.c
  47. ../src/filter.c
  48. ../src/images.c
  49. ../src/message.c
  50. ../src/protocol.c
  51. ../src/smtp_utils.c
  52. ../src/smtp_proto.c
  53. ../src/worker_util.c)
  54. SET(TOKENIZERSSRC ../src/tokenizers/tokenizers.c
  55. ../src/tokenizers/osb.c)
  56. SET(CLASSIFIERSSRC ../src/classifiers/classifiers.c
  57. ../src/classifiers/bayes.c
  58. ../src/classifiers/winnow.c)
  59. # Add targets
  60. # Rspamdutil
  61. ADD_LIBRARY(rspamd-util ${LINK_TYPE} ${LIBRSPAMDUTILSRC})
  62. IF(CMAKE_COMPILER_IS_GNUCC)
  63. SET_TARGET_PROPERTIES(rspamd-util PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
  64. ENDIF(CMAKE_COMPILER_IS_GNUCC)
  65. TARGET_LINK_LIBRARIES(rspamd-util ${RSPAMD_REQUIRED_LIBRARIES})
  66. TARGET_LINK_LIBRARIES(rspamd-util pcre)
  67. TARGET_LINK_LIBRARIES(rspamd-util rspamd-ucl)
  68. TARGET_LINK_LIBRARIES(rspamd-util rspamd-http-parser)
  69. TARGET_LINK_LIBRARIES(rspamd-util event)
  70. IF(NOT DEBIAN_BUILD)
  71. SET_TARGET_PROPERTIES(rspamd-util PROPERTIES VERSION ${RSPAMD_VERSION})
  72. ENDIF(NOT DEBIAN_BUILD)
  73. IF(GLIB_COMPAT)
  74. INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl")
  75. TARGET_LINK_LIBRARIES(rspamd-util glibadditions)
  76. ENDIF(GLIB_COMPAT)
  77. IF(NO_SHARED MATCHES "OFF")
  78. INSTALL(TARGETS rspamd-util
  79. LIBRARY DESTINATION ${LIBDIR}
  80. PUBLIC_HEADER DESTINATION include)
  81. ENDIF(NO_SHARED MATCHES "OFF")
  82. # Rspamd client
  83. IF(NOT DEBIAN_BUILD)
  84. ADD_LIBRARY(rspamdclient SHARED ${LIBRSPAMDCLIENTSRC})
  85. ADD_LIBRARY(rspamdclient_static STATIC ${LIBRSPAMDCLIENTSRC})
  86. SET_TARGET_PROPERTIES(rspamdclient PROPERTIES PUBLIC_HEADER "client/librspamdclient.h")
  87. IF(CMAKE_COMPILER_IS_GNUCC)
  88. SET_TARGET_PROPERTIES(rspamdclient PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
  89. SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
  90. ENDIF(CMAKE_COMPILER_IS_GNUCC)
  91. TARGET_LINK_LIBRARIES(rspamdclient rspamd-util)
  92. TARGET_LINK_LIBRARIES(rspamdclient ${RSPAMD_REQUIRED_LIBRARIES})
  93. TARGET_LINK_LIBRARIES(rspamdclient_static rspamd-util)
  94. TARGET_LINK_LIBRARIES(rspamdclient_static ${RSPAMD_REQUIRED_LIBRARIES})
  95. ELSE(NOT DEBIAN_BUILD)
  96. ADD_LIBRARY(rspamdclient STATIC ${LIBRSPAMDCLIENTSRC})
  97. IF(CMAKE_COMPILER_IS_GNUCC)
  98. SET_TARGET_PROPERTIES(rspamdclient PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
  99. ENDIF(CMAKE_COMPILER_IS_GNUCC)
  100. TARGET_LINK_LIBRARIES(rspamdclient rspamd-util)
  101. TARGET_LINK_LIBRARIES(rspamdclient ${RSPAMD_REQUIRED_LIBRARIES})
  102. ENDIF(NOT DEBIAN_BUILD)
  103. IF(NOT DEBIAN_BUILD)
  104. SET_TARGET_PROPERTIES(rspamdclient PROPERTIES VERSION ${RSPAMD_VERSION})
  105. SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES VERSION ${RSPAMD_VERSION})
  106. ENDIF(NOT DEBIAN_BUILD)
  107. IF(GLIB_COMPAT)
  108. INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl")
  109. TARGET_LINK_LIBRARIES(rspamdclient glibadditions)
  110. ENDIF(GLIB_COMPAT)
  111. IF(NOT DEBIAN_BUILD)
  112. INSTALL(TARGETS rspamdclient rspamdclient_static LIBRARY PUBLIC_HEADER
  113. LIBRARY DESTINATION ${LIBDIR}
  114. PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
  115. ARCHIVE DESTINATION ${LIBDIR})
  116. ENDIF(NOT DEBIAN_BUILD)
  117. # Librspamd-server
  118. #IF(WITH_DB)
  119. # LIST(APPEND LIBRSPAMDSERVERSRC ../src/kvstorage_bdb.c)
  120. #ENDIF(WITH_DB)
  121. #IF(WITH_SQLITE)
  122. # LIST(APPEND LIBRSPAMDSERVERSRC ../src/kvstorage_sqlite.c)
  123. #ENDIF(WITH_SQLITE)
  124. ADD_LIBRARY(rspamd-server ${LINK_TYPE} ${LIBRSPAMDSERVERSRC} ${TOKENIZERSSRC} ${CLASSIFIERSSRC})
  125. IF(NOT DEBIAN_BUILD)
  126. SET_TARGET_PROPERTIES(rspamd-server PROPERTIES VERSION ${RSPAMD_VERSION})
  127. ENDIF(NOT DEBIAN_BUILD)
  128. SET_TARGET_PROPERTIES(rspamd-server PROPERTIES LINKER_LANGUAGE C COMPILE_FLAGS "-DRSPAMD_LIB")
  129. TARGET_LINK_LIBRARIES(rspamd-server rspamd-lua)
  130. TARGET_LINK_LIBRARIES(rspamd-server rspamd-json)
  131. TARGET_LINK_LIBRARIES(rspamd-server rspamd-cdb)
  132. TARGET_LINK_LIBRARIES(rspamd-server rspamd-util)
  133. IF(LIBJUDY_LIBRARY)
  134. TARGET_LINK_LIBRARIES(rspamd-server Judy)
  135. ENDIF(LIBJUDY_LIBRARY)
  136. IF(CMAKE_COMPILER_IS_GNUCC)
  137. SET_TARGET_PROPERTIES(rspamd-server PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB -fno-strict-aliasing")
  138. ENDIF(CMAKE_COMPILER_IS_GNUCC)
  139. IF(WITH_DB)
  140. TARGET_LINK_LIBRARIES(rspamd-server db)
  141. ENDIF(WITH_DB)
  142. IF(OPENSSL_FOUND)
  143. TARGET_LINK_LIBRARIES(rspamd-server ${OPENSSL_LIBRARIES})
  144. ENDIF(OPENSSL_FOUND)
  145. IF(NO_SHARED MATCHES "OFF")
  146. INSTALL(TARGETS rspamd-server
  147. LIBRARY DESTINATION ${LIBDIR}
  148. PUBLIC_HEADER DESTINATION ${INCLUDEDIR})
  149. ENDIF(NO_SHARED MATCHES "OFF")
  150. # Librspamdmime
  151. ADD_LIBRARY(rspamd-mime ${LINK_TYPE} ${LIBRSPAMDMIMESRC})
  152. IF(NOT DEBIAN_BUILD)
  153. SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES VERSION ${RSPAMD_VERSION})
  154. ENDIF(NOT DEBIAN_BUILD)
  155. SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES LINKER_LANGUAGE C)
  156. SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
  157. TARGET_LINK_LIBRARIES(rspamd-mime rspamd-server)
  158. TARGET_LINK_LIBRARIES(rspamd-mime rspamd-util)
  159. IF(CMAKE_COMPILER_IS_GNUCC)
  160. SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB -fno-strict-aliasing")
  161. ENDIF(CMAKE_COMPILER_IS_GNUCC)
  162. IF(NO_SHARED MATCHES "OFF")
  163. INSTALL(TARGETS rspamd-mime
  164. LIBRARY DESTINATION ${LIBDIR}
  165. PUBLIC_HEADER DESTINATION ${INCLUDEDIR})
  166. ENDIF(NO_SHARED MATCHES "OFF")
  167. INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/src")