CMakeLists.txt 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
  2. project(cppzmq-test CXX)
  3. # place binaries and libraries according to GNU standards
  4. include(GNUInstallDirs)
  5. set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
  6. set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
  7. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR})
  8. include(CTest)
  9. include(cmake/catch.cmake)
  10. include(${CATCH_MODULE_PATH}/Catch.cmake)
  11. find_package(Threads)
  12. add_executable(
  13. unit_tests
  14. buffer.cpp
  15. message.cpp
  16. context.cpp
  17. socket.cpp
  18. socket_ref.cpp
  19. poller.cpp
  20. active_poller.cpp
  21. multipart.cpp
  22. recv_multipart.cpp
  23. send_multipart.cpp
  24. codec_multipart.cpp
  25. monitor.cpp
  26. utilities.cpp
  27. )
  28. add_dependencies(unit_tests catch)
  29. target_include_directories(unit_tests PUBLIC ${CATCH_MODULE_PATH})
  30. target_link_libraries(
  31. unit_tests
  32. PRIVATE cppzmq
  33. PRIVATE ${CMAKE_THREAD_LIBS_INIT}
  34. )
  35. OPTION (COVERAGE "Enable gcda file generation needed by lcov" OFF)
  36. if (COVERAGE)
  37. target_compile_options(unit_tests PRIVATE --coverage)
  38. target_link_libraries(unit_tests PRIVATE --coverage)
  39. endif()
  40. catch_discover_tests(unit_tests)