nextcloud_add_test.cmake 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. find_package(Qt5 COMPONENTS Core Test Xml Network Qml Quick REQUIRED)
  2. macro(nextcloud_add_test test_class)
  3. set(CMAKE_AUTOMOC TRUE)
  4. set(OWNCLOUD_TEST_CLASS ${test_class})
  5. string(TOLOWER "${OWNCLOUD_TEST_CLASS}" OWNCLOUD_TEST_CLASS_LOWERCASE)
  6. add_executable(${OWNCLOUD_TEST_CLASS}Test test${OWNCLOUD_TEST_CLASS_LOWERCASE}.cpp)
  7. set_target_properties(${OWNCLOUD_TEST_CLASS}Test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY})
  8. target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE
  9. Nextcloud::sync
  10. testutils
  11. nextcloudCore
  12. cmdCore
  13. Qt5::Test
  14. Qt5::Quick
  15. )
  16. if (WIN32)
  17. target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE
  18. nextcloudsync_vfs_cfapi
  19. )
  20. endif()
  21. if (LINUX)
  22. target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE
  23. nextcloudsync_vfs_xattr
  24. )
  25. endif()
  26. IF(BUILD_UPDATER)
  27. target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE
  28. updater
  29. )
  30. endif()
  31. add_definitions(-DOWNCLOUD_TEST)
  32. add_definitions(-DOWNCLOUD_BIN_PATH="${CMAKE_BINARY_DIR}/bin")
  33. add_test(NAME ${OWNCLOUD_TEST_CLASS}Test
  34. COMMAND ${OWNCLOUD_TEST_CLASS}Test
  35. WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
  36. target_include_directories(${OWNCLOUD_TEST_CLASS}Test
  37. PRIVATE
  38. "${CMAKE_SOURCE_DIR}/test/"
  39. ${CMAKE_SOURCE_DIR}/src/3rdparty/qtokenizer
  40. )
  41. set_target_properties(${OWNCLOUD_TEST_CLASS}Test PROPERTIES FOLDER Tests)
  42. endmacro()
  43. macro(nextcloud_add_benchmark test_class)
  44. set(CMAKE_AUTOMOC TRUE)
  45. set(OWNCLOUD_TEST_CLASS ${test_class})
  46. string(TOLOWER "${OWNCLOUD_TEST_CLASS}" OWNCLOUD_TEST_CLASS_LOWERCASE)
  47. add_executable(${OWNCLOUD_TEST_CLASS}Bench benchmarks/bench${OWNCLOUD_TEST_CLASS_LOWERCASE}.cpp)
  48. set_target_properties(${OWNCLOUD_TEST_CLASS}Bench PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY})
  49. target_link_libraries(${OWNCLOUD_TEST_CLASS}Bench
  50. Nextcloud::sync
  51. testutils
  52. nextcloudCore
  53. cmdCore
  54. Qt5::Core
  55. Qt5::Test
  56. Qt5::Xml
  57. Qt5::Network
  58. )
  59. IF(BUILD_UPDATER)
  60. target_link_libraries(${OWNCLOUD_TEST_CLASS}Bench
  61. updater
  62. )
  63. endif()
  64. add_definitions(-DOWNCLOUD_TEST)
  65. add_definitions(-DOWNCLOUD_BIN_PATH="${CMAKE_BINARY_DIR}/bin")
  66. set_target_properties(${OWNCLOUD_TEST_CLASS}Bench PROPERTIES FOLDER Tests/Benchmarks)
  67. endmacro()