TID.cmake 910 B

1234567891011121314151617181920212223242526272829
  1. project(test_include_dirs)
  2. include(CTest)
  3. enable_testing()
  4. add_executable(dummy dummy.cpp)
  5. function(generate_tests NAME)
  6. set(ctest_file "${CMAKE_CURRENT_BINARY_DIR}/${NAME}_tests.cmake")
  7. add_custom_command(
  8. OUTPUT "${ctest_file}"
  9. COMMAND "${CMAKE_COMMAND}"
  10. -D "TEST_EXECUTABLE=$<TARGET_FILE:dummy>"
  11. -D "TEST_SUITE=${NAME}"
  12. -D "TEST_NAMES=${ARGN}"
  13. -D "CTEST_FILE=${ctest_file}"
  14. -P "${CMAKE_CURRENT_SOURCE_DIR}/add-tests.cmake"
  15. VERBATIM
  16. )
  17. add_custom_target(${NAME}_tests ALL DEPENDS "${ctest_file}")
  18. endfunction()
  19. generate_tests(house dog cat)
  20. generate_tests(farm cow pig)
  21. generate_tests(zoo fox emu)
  22. set_property(DIRECTORY PROPERTY TEST_INCLUDE_FILE "house_tests.cmake")
  23. set_property(DIRECTORY APPEND PROPERTY TEST_INCLUDE_FILES "farm_tests.cmake")
  24. set_property(DIRECTORY APPEND PROPERTY TEST_INCLUDE_FILES "zoo_tests.cmake")