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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  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/logger.c
  11. ../src/map.c
  12. ../src/memcached.c
  13. ../src/mem_pool.c
  14. ../src/printf.c
  15. ../src/radix.c
  16. ../src/rrd.c
  17. ../src/trie.c
  18. ../src/upstream.c
  19. ../src/util.c)
  20. # kvstorageclient
  21. SET(LIBRKVSTORAGESRC kvstorage/libkvstorageclient.c)
  22. # Librspamdserver
  23. SET(LIBRSPAMDSERVERSRC
  24. ../src/binlog.c
  25. ../src/buffer.c
  26. ../src/cfg_utils.c
  27. ../src/cfg_xml.c
  28. ../src/dkim.c
  29. ../src/dns.c
  30. ../src/dynamic_cfg.c
  31. ../src/events.c
  32. ../src/html.c
  33. ../src/kvstorage.c
  34. ../src/kvstorage_config.c
  35. ../src/kvstorage_file.c
  36. ../src/lmtp_proto.c
  37. ../src/proxy.c
  38. ../src/roll_history.c
  39. ../src/settings.c
  40. ../src/spf.c
  41. ../src/statfile.c
  42. ../src/statfile_sync.c
  43. ../src/symbols_cache.c
  44. ../src/url.c
  45. ../src/view.c)
  46. # Librspamd mime
  47. SET(LIBRSPAMDMIMESRC
  48. ../src/expressions.c
  49. ../src/filter.c
  50. ../src/images.c
  51. ../src/message.c
  52. ../src/protocol.c
  53. ../src/smtp_utils.c
  54. ../src/smtp_proto.c
  55. ../src/worker_util.c)
  56. SET(TOKENIZERSSRC ../src/tokenizers/tokenizers.c
  57. ../src/tokenizers/osb.c)
  58. SET(CLASSIFIERSSRC ../src/classifiers/classifiers.c
  59. ../src/classifiers/bayes.c
  60. ../src/classifiers/winnow.c)
  61. # Add targets
  62. # Rspamdutil
  63. ADD_LIBRARY(rspamd-util ${LINK_TYPE} ${LIBRSPAMDUTILSRC})
  64. IF(CMAKE_COMPILER_IS_GNUCC)
  65. SET_TARGET_PROPERTIES(rspamd-util PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
  66. ENDIF(CMAKE_COMPILER_IS_GNUCC)
  67. TARGET_LINK_LIBRARIES(rspamd-util ${CMAKE_REQUIRED_LIBRARIES})
  68. TARGET_LINK_LIBRARIES(rspamd-util pcre)
  69. TARGET_LINK_LIBRARIES(rspamd-util ${GLIB2_LIBRARIES})
  70. TARGET_LINK_LIBRARIES(rspamd-util event)
  71. IF(NOT DEBIAN_BUILD)
  72. SET_TARGET_PROPERTIES(rspamd-util PROPERTIES VERSION ${RSPAMD_VERSION})
  73. ENDIF(NOT DEBIAN_BUILD)
  74. IF(GLIB_COMPAT)
  75. INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl")
  76. TARGET_LINK_LIBRARIES(rspamd-util glibadditions)
  77. ENDIF(GLIB_COMPAT)
  78. IF(NO_SHARED MATCHES "OFF")
  79. INSTALL(TARGETS rspamd-util
  80. LIBRARY DESTINATION ${LIBDIR}
  81. PUBLIC_HEADER DESTINATION include)
  82. ENDIF(NO_SHARED MATCHES "OFF")
  83. # Rspamd client
  84. IF(NOT DEBIAN_BUILD)
  85. ADD_LIBRARY(rspamdclient SHARED ${LIBRSPAMDCLIENTSRC})
  86. ADD_LIBRARY(rspamdclient_static STATIC ${LIBRSPAMDCLIENTSRC})
  87. SET_TARGET_PROPERTIES(rspamdclient PROPERTIES PUBLIC_HEADER "client/librspamdclient.h")
  88. IF(CMAKE_COMPILER_IS_GNUCC)
  89. SET_TARGET_PROPERTIES(rspamdclient PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
  90. SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
  91. ENDIF(CMAKE_COMPILER_IS_GNUCC)
  92. TARGET_LINK_LIBRARIES(rspamdclient rspamd-util)
  93. TARGET_LINK_LIBRARIES(rspamdclient_static ${CMAKE_REQUIRED_LIBRARIES})
  94. TARGET_LINK_LIBRARIES(rspamdclient_static ${GLIB2_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 ${CMAKE_REQUIRED_LIBRARIES})
  102. TARGET_LINK_LIBRARIES(rspamdclient ${GLIB2_LIBRARIES})
  103. ENDIF(NOT DEBIAN_BUILD)
  104. IF(NOT DEBIAN_BUILD)
  105. SET_TARGET_PROPERTIES(rspamdclient PROPERTIES VERSION ${RSPAMD_VERSION})
  106. SET_TARGET_PROPERTIES(rspamdclient_static PROPERTIES VERSION ${RSPAMD_VERSION})
  107. ENDIF(NOT DEBIAN_BUILD)
  108. IF(GLIB_COMPAT)
  109. INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl")
  110. TARGET_LINK_LIBRARIES(rspamdclient glibadditions)
  111. ENDIF(GLIB_COMPAT)
  112. IF(NOT DEBIAN_BUILD)
  113. INSTALL(TARGETS rspamdclient rspamdclient_static LIBRARY PUBLIC_HEADER
  114. LIBRARY DESTINATION ${LIBDIR}
  115. PUBLIC_HEADER DESTINATION ${INCLUDEDIR}
  116. ARCHIVE DESTINATION ${LIBDIR})
  117. ENDIF(NOT DEBIAN_BUILD)
  118. # Librspamd-server
  119. IF(WITH_DB)
  120. LIST(APPEND LIBRSPAMDSERVERSRC ../src/kvstorage_bdb.c)
  121. ENDIF(WITH_DB)
  122. IF(WITH_SQLITE)
  123. LIST(APPEND LIBRSPAMDSERVERSRC ../src/kvstorage_sqlite.c)
  124. ENDIF(WITH_SQLITE)
  125. ADD_LIBRARY(rspamd-server ${LINK_TYPE} ${LIBRSPAMDSERVERSRC} ${TOKENIZERSSRC} ${CLASSIFIERSSRC})
  126. IF(NOT DEBIAN_BUILD)
  127. SET_TARGET_PROPERTIES(rspamd-server PROPERTIES VERSION ${RSPAMD_VERSION})
  128. ENDIF(NOT DEBIAN_BUILD)
  129. SET_TARGET_PROPERTIES(rspamd-server PROPERTIES LINKER_LANGUAGE C COMPILE_FLAGS "-DRSPAMD_LIB")
  130. TARGET_LINK_LIBRARIES(rspamd-server rspamd-lua)
  131. TARGET_LINK_LIBRARIES(rspamd-server rspamd-json)
  132. TARGET_LINK_LIBRARIES(rspamd-server rspamd-cdb)
  133. TARGET_LINK_LIBRARIES(rspamd-server rspamd-util)
  134. IF(CMAKE_COMPILER_IS_GNUCC)
  135. SET_TARGET_PROPERTIES(rspamd-server PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB -fno-strict-aliasing")
  136. ENDIF(CMAKE_COMPILER_IS_GNUCC)
  137. IF(WITH_DB)
  138. TARGET_LINK_LIBRARIES(rspamd-server db)
  139. ENDIF(WITH_DB)
  140. IF(SQLITE_LIBRARIES)
  141. TARGET_LINK_LIBRARIES(rspamd-server ${SQLITE_LIBRARIES})
  142. ENDIF(SQLITE_LIBRARIES)
  143. IF(OPENSSL_FOUND)
  144. TARGET_LINK_LIBRARIES(rspamd-server ${OPENSSL_LIBRARIES})
  145. ENDIF(OPENSSL_FOUND)
  146. IF(NO_SHARED MATCHES "OFF")
  147. INSTALL(TARGETS rspamd-server
  148. LIBRARY DESTINATION ${LIBDIR}
  149. PUBLIC_HEADER DESTINATION ${INCLUDEDIR})
  150. ENDIF(NO_SHARED MATCHES "OFF")
  151. # Librspamdmime
  152. ADD_LIBRARY(rspamd-mime ${LINK_TYPE} ${LIBRSPAMDMIMESRC})
  153. IF(NOT DEBIAN_BUILD)
  154. SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES VERSION ${RSPAMD_VERSION})
  155. ENDIF(NOT DEBIAN_BUILD)
  156. SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES LINKER_LANGUAGE C)
  157. SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB")
  158. TARGET_LINK_LIBRARIES(rspamd-mime rspamd-server)
  159. TARGET_LINK_LIBRARIES(rspamd-mime rspamd-util)
  160. IF(CMAKE_COMPILER_IS_GNUCC)
  161. SET_TARGET_PROPERTIES(rspamd-mime PROPERTIES COMPILE_FLAGS "-DRSPAMD_LIB -fno-strict-aliasing")
  162. ENDIF(CMAKE_COMPILER_IS_GNUCC)
  163. IF(GMIME24)
  164. TARGET_LINK_LIBRARIES(rspamd-mime ${GMIME24_LIBRARIES})
  165. ELSE(GMIME24)
  166. TARGET_LINK_LIBRARIES(rspamd-mime ${GMIME2_LIBRARIES})
  167. ENDIF(GMIME24)
  168. IF(NO_SHARED MATCHES "OFF")
  169. INSTALL(TARGETS rspamd-mime
  170. LIBRARY DESTINATION ${LIBDIR}
  171. PUBLIC_HEADER DESTINATION ${INCLUDEDIR})
  172. ENDIF(NO_SHARED MATCHES "OFF")
  173. # Libkvstorageclient
  174. IF(NOT DEBIAN_BUILD)
  175. ADD_LIBRARY(kvstorageclient SHARED ${LIBRKVSTORAGESRC})
  176. ADD_LIBRARY(kvstorageclient_static STATIC ${LIBRKVSTORAGESRC})
  177. IF(NOT DEBIAN_BUILD)
  178. SET_TARGET_PROPERTIES(kvstorageclient PROPERTIES PUBLIC_HEADER "kvstorage/libkvstorageclient.h")
  179. ENDIF(NOT DEBIAN_BUILD)
  180. IF(CMAKE_COMPILER_IS_GNUCC)
  181. SET_TARGET_PROPERTIES(kvstorageclient PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
  182. SET_TARGET_PROPERTIES(kvstorageclient_static PROPERTIES COMPILE_FLAGS "-fno-strict-aliasing")
  183. ENDIF(CMAKE_COMPILER_IS_GNUCC)
  184. TARGET_LINK_LIBRARIES(kvstorageclient rspamd-util)
  185. TARGET_LINK_LIBRARIES(kvstorageclient_static ${CMAKE_REQUIRED_LIBRARIES})
  186. TARGET_LINK_LIBRARIES(kvstorageclient_static ${GLIB2_LIBRARIES})
  187. SET_TARGET_PROPERTIES(kvstorageclient PROPERTIES VERSION ${RSPAMD_VERSION})
  188. SET_TARGET_PROPERTIES(kvstorageclient_static PROPERTIES VERSION ${RSPAMD_VERSION})
  189. IF(GLIB_COMPAT)
  190. INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/contrib/lgpl")
  191. TARGET_LINK_LIBRARIES(kvstorageclient glibadditions)
  192. ENDIF(GLIB_COMPAT)
  193. ENDIF(NOT DEBIAN_BUILD)
  194. INCLUDE_DIRECTORIES("${CMAKE_CURRENT_SOURCE_DIR}/src")