GTestTesting.cmake 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #=============================================================================
  2. # Copyright 2014 Blender Foundation.
  3. #
  4. # Distributed under the OSI-approved BSD License (the "License");
  5. # see accompanying file Copyright.txt for details.
  6. #
  7. # This software is distributed WITHOUT ANY WARRANTY; without even the
  8. # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  9. # See the License for more information.
  10. #
  11. # Inspired on the Testing.cmake from Libmv
  12. #
  13. #=============================================================================
  14. macro(BLENDER_SRC_GTEST_EX NAME SRC EXTRA_LIBS DO_ADD_TEST)
  15. if(WITH_GTESTS)
  16. get_property(_current_include_directories
  17. DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
  18. PROPERTY INCLUDE_DIRECTORIES)
  19. set(TEST_INC
  20. ${_current_include_directories}
  21. ${CMAKE_SOURCE_DIR}/tests/gtests
  22. ${GLOG_INCLUDE_DIRS}
  23. ${GFLAGS_INCLUDE_DIRS}
  24. ${CMAKE_SOURCE_DIR}/extern/gtest/include
  25. ${CMAKE_SOURCE_DIR}/extern/gmock/include
  26. )
  27. unset(_current_include_directories)
  28. add_executable(${NAME}_test ${SRC})
  29. target_link_libraries(${NAME}_test
  30. ${EXTRA_LIBS}
  31. ${PLATFORM_LINKLIBS}
  32. bf_testing_main
  33. bf_intern_eigen
  34. bf_intern_guardedalloc
  35. extern_gtest
  36. extern_gmock
  37. # needed for glog
  38. ${PTHREADS_LIBRARIES}
  39. ${GLOG_LIBRARIES}
  40. ${GFLAGS_LIBRARIES})
  41. if(WITH_OPENMP_STATIC)
  42. target_link_libraries(${NAME}_test ${OpenMP_LIBRARIES})
  43. endif()
  44. set_target_properties(${NAME}_test PROPERTIES
  45. RUNTIME_OUTPUT_DIRECTORY "${TESTS_OUTPUT_DIR}"
  46. RUNTIME_OUTPUT_DIRECTORY_RELEASE "${TESTS_OUTPUT_DIR}"
  47. RUNTIME_OUTPUT_DIRECTORY_DEBUG "${TESTS_OUTPUT_DIR}"
  48. INCLUDE_DIRECTORIES "${TEST_INC}")
  49. if(${DO_ADD_TEST})
  50. add_test(NAME ${NAME}_test COMMAND ${TESTS_OUTPUT_DIR}/${NAME}_test WORKING_DIRECTORY $<TARGET_FILE_DIR:blender>)
  51. endif()
  52. endif()
  53. endmacro()
  54. macro(BLENDER_SRC_GTEST NAME SRC EXTRA_LIBS)
  55. BLENDER_SRC_GTEST_EX("${NAME}" "${SRC}" "${EXTRA_LIBS}" "TRUE")
  56. endmacro()
  57. macro(BLENDER_TEST NAME EXTRA_LIBS)
  58. BLENDER_SRC_GTEST_EX("${NAME}" "${NAME}_test.cc" "${EXTRA_LIBS}" "TRUE")
  59. endmacro()
  60. macro(BLENDER_TEST_PERFORMANCE NAME EXTRA_LIBS)
  61. BLENDER_SRC_GTEST_EX("${NAME}" "${NAME}_test.cc" "${EXTRA_LIBS}" "FALSE")
  62. endmacro()