QtPromiseAddTest.cmake 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. function(qtpromise_add_test NAME)
  2. cmake_parse_arguments(_ARG "" "" "SOURCES;LIBRARIES" ${ARGN})
  3. set(_TARGET qtpromise.tests.auto.${NAME})
  4. add_executable(${_TARGET} ${_ARG_SOURCES})
  5. if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
  6. target_link_libraries(${_TARGET} gcov)
  7. target_compile_options(${_TARGET}
  8. PRIVATE
  9. -fprofile-arcs
  10. -ftest-coverage
  11. -O0
  12. -g
  13. )
  14. endif()
  15. target_link_libraries(${_TARGET}
  16. Qt${QT_VERSION_MAJOR}::Concurrent
  17. Qt${QT_VERSION_MAJOR}::Test
  18. qtpromise
  19. qtpromise.tests.utils
  20. ${_ARG_LIBRARIES}
  21. )
  22. add_test(NAME ${_TARGET}
  23. COMMAND ${_TARGET}
  24. WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
  25. )
  26. endfunction()
  27. function(qtpromise_add_tests GROUP)
  28. cmake_parse_arguments(_ARG "" "" "SOURCES" ${ARGN})
  29. foreach(_FILE ${_ARG_SOURCES})
  30. get_filename_component(_FILE_NAME ${_FILE} NAME)
  31. if (_FILE_NAME MATCHES "^tst_(.+)\.cpp$")
  32. string(REGEX REPLACE "^tst_(.+)\.cpp$" "\\1" _TEST_NAME ${_FILE_NAME})
  33. qtpromise_add_test(${GROUP}.${_TEST_NAME} SOURCES ${_FILE} ${_ARG_UNPARSED_ARGUMENTS})
  34. endif()
  35. endforeach()
  36. endfunction()