Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

55 wiersze
2.5 KiB

  1. If ( __CMAKE_TESTS_INCLUDED )
  2. Return ( )
  3. EndIf ( )
  4. Set ( __CMAKE_TESTS_INCLUDED TRUE )
  5. CMake_Minimum_Required ( VERSION 3.0 )
  6. Include ( CMakeParseArguments )
  7. Include ( CTest )
  8. Function ( ADD_CMAKE_TEST )
  9. Set ( OPTIONS COMMAND )
  10. Set ( ONE_VALUE_ARGS NAME TARGET )
  11. Set ( MULTI_VALUE_ARGS )
  12. CMake_Parse_Arguments ( ADD_CMAKE_TEST "${OPTIONS}" "${ONE_VALUE_ARGS}" "${MULTI_VALUE_ARGS}" ${ARGN} )
  13. If ( NOT ADD_CMAKE_TEST_NAME )
  14. Message ( FATAL_ERROR "ADD_CMAKE_TEST expects the NAME parameter!" )
  15. EndIf ( )
  16. If ( NOT ADD_CMAKE_TEST_TARGET )
  17. Message ( FATAL_ERROR "ADD_CMAKE_TEST expects the TARGET parameter!" )
  18. EndIf ( )
  19. If ( NOT ADD_CMAKE_TEST_COMMAND )
  20. Set ( ADD_CMAKE_TEST_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${ADD_CMAKE_TEST_TARGET} )
  21. Else ( )
  22. Set ( ADD_CMAKE_TEST_COMMAND ${ADD_CMAKE_TEST_UNPARSED_ARGUMENTS} )
  23. EndIf ( )
  24. # Build Tests #################################################################################
  25. If ( NOT TARGET build_tests)
  26. Add_Custom_Target ( build_tests )
  27. Add_Test ( NAME "build"
  28. COMMAND "${CMAKE_COMMAND}" --build ${CMAKE_BINARY_DIR} --target build_tests )
  29. EndIf ( )
  30. Add_Dependencies ( build_tests ${ADD_CMAKE_TEST_TARGET} )
  31. # Run Tests ###################################################################################
  32. If ( NOT TARGET tests)
  33. Add_Custom_Target ( tests )
  34. EndIf ( )
  35. Add_Custom_Target ( run_${ADD_CMAKE_TEST_TARGET}
  36. DEPENDS ${ADD_CMAKE_TEST_TARGET}
  37. COMMAND ${ADD_CMAKE_TEST_COMMAND} )
  38. Add_Dependencies ( tests run_${ADD_CMAKE_TEST_TARGET} )
  39. # CTest #######################################################################################
  40. Add_Test ( NAME ${ADD_CMAKE_TEST_NAME}
  41. COMMAND ${ADD_CMAKE_TEST_COMMAND} )
  42. EndFunction ( )