nextcloud_add_test.cmake 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. find_package(Qt5 COMPONENTS Core Test Xml Network Qml Quick REQUIRED)
  2. macro(nextcloud_build_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 nextcloudsync_vfs_cfapi)
  18. elseif (LINUX)
  19. target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE nextcloudsync_vfs_xattr)
  20. endif()
  21. IF(BUILD_UPDATER)
  22. target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE updater)
  23. endif()
  24. add_definitions(-DOWNCLOUD_TEST)
  25. add_definitions(-DOWNCLOUD_BIN_PATH="${CMAKE_BINARY_DIR}/bin")
  26. target_include_directories(${OWNCLOUD_TEST_CLASS}Test PRIVATE
  27. "${CMAKE_SOURCE_DIR}/test/"
  28. ${CMAKE_SOURCE_DIR}/src/3rdparty/qtokenizer
  29. )
  30. set_target_properties(${OWNCLOUD_TEST_CLASS}Test PROPERTIES FOLDER Tests)
  31. endmacro()
  32. macro(nextcloud_add_test test_class)
  33. set(CMAKE_AUTOMOC TRUE)
  34. set(OWNCLOUD_TEST_CLASS ${test_class})
  35. string(TOLOWER "${OWNCLOUD_TEST_CLASS}" OWNCLOUD_TEST_CLASS_LOWERCASE)
  36. add_executable(${OWNCLOUD_TEST_CLASS}Test test${OWNCLOUD_TEST_CLASS_LOWERCASE}.cpp)
  37. set_target_properties(${OWNCLOUD_TEST_CLASS}Test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY})
  38. target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE
  39. Nextcloud::sync
  40. testutils
  41. nextcloudCore
  42. cmdCore
  43. Qt5::Test
  44. Qt5::Quick
  45. )
  46. if (WIN32)
  47. target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE
  48. nextcloudsync_vfs_cfapi
  49. )
  50. endif()
  51. if (LINUX)
  52. target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE
  53. nextcloudsync_vfs_xattr
  54. )
  55. endif()
  56. IF(BUILD_UPDATER)
  57. target_link_libraries(${OWNCLOUD_TEST_CLASS}Test PRIVATE
  58. updater
  59. )
  60. endif()
  61. add_definitions(-DOWNCLOUD_TEST)
  62. add_definitions(-DOWNCLOUD_BIN_PATH="${CMAKE_BINARY_DIR}/bin")
  63. add_test(NAME ${OWNCLOUD_TEST_CLASS}Test
  64. COMMAND ${OWNCLOUD_TEST_CLASS}Test
  65. WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
  66. target_include_directories(${OWNCLOUD_TEST_CLASS}Test
  67. PRIVATE
  68. "${CMAKE_SOURCE_DIR}/test/"
  69. ${CMAKE_SOURCE_DIR}/src/3rdparty/qtokenizer
  70. )
  71. set_target_properties(${OWNCLOUD_TEST_CLASS}Test PROPERTIES FOLDER Tests)
  72. endmacro()
  73. macro(nextcloud_add_benchmark test_class)
  74. set(CMAKE_AUTOMOC TRUE)
  75. set(OWNCLOUD_TEST_CLASS ${test_class})
  76. string(TOLOWER "${OWNCLOUD_TEST_CLASS}" OWNCLOUD_TEST_CLASS_LOWERCASE)
  77. add_executable(${OWNCLOUD_TEST_CLASS}Bench benchmarks/bench${OWNCLOUD_TEST_CLASS_LOWERCASE}.cpp)
  78. set_target_properties(${OWNCLOUD_TEST_CLASS}Bench PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${BIN_OUTPUT_DIRECTORY})
  79. target_link_libraries(${OWNCLOUD_TEST_CLASS}Bench
  80. Nextcloud::sync
  81. testutils
  82. nextcloudCore
  83. cmdCore
  84. Qt5::Core
  85. Qt5::Test
  86. Qt5::Xml
  87. Qt5::Network
  88. )
  89. IF(BUILD_UPDATER)
  90. target_link_libraries(${OWNCLOUD_TEST_CLASS}Bench
  91. updater
  92. )
  93. endif()
  94. add_definitions(-DOWNCLOUD_TEST)
  95. add_definitions(-DOWNCLOUD_BIN_PATH="${CMAKE_BINARY_DIR}/bin")
  96. set_target_properties(${OWNCLOUD_TEST_CLASS}Bench PROPERTIES FOLDER Tests/Benchmarks)
  97. endmacro()