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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. SET(TESTSRC rspamd_mem_pool_test.c
  2. rspamd_statfile_test.c
  3. rspamd_url_test.c
  4. rspamd_dns_test.c
  5. rspamd_async_test.c
  6. rspamd_dkim_test.c
  7. rspamd_rrd_test.c
  8. rspamd_radix_test.c
  9. rspamd_shingles_test.c
  10. rspamd_upstream_test.c
  11. rspamd_http_test.c
  12. rspamd_lua_test.c
  13. rspamd_cryptobox_test.c
  14. rspamd_test_suite.c)
  15. ADD_EXECUTABLE(rspamd-test EXCLUDE_FROM_ALL ${TESTSRC})
  16. SET_TARGET_PROPERTIES(rspamd-test PROPERTIES LINKER_LANGUAGE C)
  17. SET_TARGET_PROPERTIES(rspamd-test PROPERTIES COMPILE_FLAGS "-DRSPAMD_TEST")
  18. ADD_DEPENDENCIES(rspamd-test rspamd-server)
  19. IF(NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
  20. TARGET_LINK_LIBRARIES(rspamd-test "-Wl,-whole-archive ${CMAKE_BINARY_DIR}/src/librspamd-server.a -Wl,-no-whole-archive")
  21. ELSE(NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
  22. TARGET_LINK_LIBRARIES(rspamd-test "-Wl,-force_load ${CMAKE_BINARY_DIR}/src/librspamd-server.a")
  23. ENDIF(NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
  24. TARGET_LINK_LIBRARIES(rspamd-test rspamd-cdb)
  25. TARGET_LINK_LIBRARIES(rspamd-test rspamd-http-parser)
  26. TARGET_LINK_LIBRARIES(rspamd-test ${RSPAMD_REQUIRED_LIBRARIES})
  27. TARGET_LINK_LIBRARIES(rspamd-test stemmer)
  28. TARGET_LINK_LIBRARIES(rspamd-test rspamd-actrie)
  29. ADD_CUSTOM_TARGET(rspamd-func-test COMMAND
  30. "/bin/sh"
  31. "${CMAKE_CURRENT_BINARY_DIR}/functional/tests.sh")
  32. ADD_DEPENDENCIES(rspamd-func-test rspamd-test)
  33. ADD_DEPENDENCIES(rspamd-func-test rspamc)
  34. ADD_DEPENDENCIES(rspamd-func-test rspamd)
  35. IF(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
  36. # Also add dependencies for convenience
  37. FILE(GLOB_RECURSE LUA_TESTS "${CMAKE_CURRENT_SOURCE_DIR}/lua/*")
  38. ADD_CUSTOM_TARGET(units-dir COMMAND
  39. ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/lua/unit"
  40. )
  41. ADD_DEPENDENCIES(rspamd-test units-dir)
  42. FOREACH(_LF IN LISTS LUA_TESTS)
  43. GET_FILENAME_COMPONENT(_NM "${_LF}" NAME)
  44. IF("${_LF}" MATCHES "^.*/unit/.*$")
  45. SET(_DS "${CMAKE_CURRENT_BINARY_DIR}/lua/unit/${_NM}")
  46. ELSE()
  47. SET(_DS "${CMAKE_CURRENT_BINARY_DIR}/lua/${_NM}")
  48. ENDIF()
  49. ADD_CUSTOM_TARGET("${_NM}" COMMAND
  50. ${CMAKE_COMMAND} -E copy_if_different ${_LF} ${_DS}
  51. SOURCES "${_LF}"
  52. )
  53. ADD_DEPENDENCIES(rspamd-test "${_NM}")
  54. ENDFOREACH()
  55. ADD_CUSTOM_TARGET(functional-dir COMMAND
  56. ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/functional/cases"
  57. COMMAND ${CMAKE_COMMAND} -E make_directory
  58. "${CMAKE_CURRENT_BINARY_DIR}/functional/configs"
  59. COMMAND ${CMAKE_COMMAND} -E make_directory
  60. "${CMAKE_CURRENT_BINARY_DIR}/functional/messages"
  61. )
  62. ADD_DEPENDENCIES(rspamd-func-test functional-dir)
  63. FILE(GLOB_RECURSE BATS_TESTS "${CMAKE_CURRENT_SOURCE_DIR}/functional/*")
  64. FOREACH(_LF IN LISTS BATS_TESTS)
  65. GET_FILENAME_COMPONENT(_NM "${_LF}" NAME)
  66. STRING(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
  67. _DS "${_LF}")
  68. ADD_CUSTOM_TARGET("${_NM}" COMMAND
  69. ${CMAKE_COMMAND} -E copy_if_different ${_LF} ${_DS}
  70. SOURCES "${_LF}"
  71. )
  72. ADD_DEPENDENCIES(rspamd-func-test "${_NM}")
  73. ENDFOREACH()
  74. ENDIF()