選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 
 

57 行
2.7 KiB

  1. # Initialize ######################################################################################
  2. Include ( cotire OPTIONAL RESULT_VARIABLE HAS_COTIRE )
  3. Include ( pedantic OPTIONAL RESULT_VARIABLE HAS_PEDANTIC )
  4. Include ( cmake_tests OPTIONAL RESULT_VARIABLE HAS_CMAKE_TESTS )
  5. # Test ############################################################################################
  6. Find_Package ( GTest )
  7. If ( NOT "${GTest_FOUND}" )
  8. Return ( )
  9. EndIf ( )
  10. File ( GLOB_RECURSE ISEF_TEST_HEADER_FILES
  11. ${CMAKE_CURRENT_SOURCE_DIR}/*.h )
  12. File ( GLOB_RECURSE ISEF_TEST_INLINE_FILES
  13. ${CMAKE_CURRENT_SOURCE_DIR}/*.inl )
  14. File ( GLOB_RECURSE ISEF_TEST_SOURCE_FILES
  15. RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
  16. ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp )
  17. ForEach ( FILE IN LISTS ISEF_TEST_SOURCE_FILES )
  18. # add test
  19. Get_Filename_Component ( TEST_DIR ${FILE} DIRECTORY )
  20. Get_Filename_Component ( TEST_NAME ${FILE} NAME_WE )
  21. Set ( TEST_NAME "${TEST_DIR}/${TEST_NAME}" )
  22. String ( REPLACE "\\" "-" TEST_NAME "${TEST_NAME}" )
  23. String ( REPLACE "/" "-" TEST_NAME "${TEST_NAME}" )
  24. Set ( TEST_NAME "test-${TEST_NAME}" )
  25. Add_Executable ( ${TEST_NAME}
  26. EXCLUDE_FROM_ALL
  27. ${ISEF_TEST_HEADER_FILES}
  28. ${ISEF_TEST_INLINE_FILES}
  29. ${FILE} )
  30. Target_Link_Libraries ( ${TEST_NAME}
  31. PUBLIC
  32. libhelloworld-objects
  33. GTest::Main )
  34. # pedantic
  35. If ( HAS_PEDANTIC )
  36. Pedantic_Apply_Flags_Target ( ${TEST_NAME} ALL )
  37. EndIf ( )
  38. # optimization
  39. If ( HAS_COTIRE )
  40. Cotire ( ${TEST_NAME} )
  41. EndIf ( )
  42. # test
  43. If ( HAS_CMAKE_TESTS )
  44. Add_CMake_Test ( NAME ${TEST_NAME} TARGET ${TEST_NAME} )
  45. Else ( )
  46. Add_Test ( NAME ${TEST_NAME} COMMAND ${TEST_NAME} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
  47. EndIf ( )
  48. EndForEach ( )