FindGoogleTest.cmake 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. # FindGoogleTest
  2. # ---------
  3. #
  4. # Locate Google Test Framework
  5. #
  6. # This module defines:
  7. #
  8. # ::
  9. #
  10. # GOOGLETEST_INCLUDE_DIRS, where to find the headers
  11. # GOOGLETEST_LIBRARIES, the libraries against which to link
  12. # GOOGLETEST_FOUND, if false, do not try to use the above mentioned vars
  13. #
  14. set(BUILD_DEPS_DIR ${CMAKE_SOURCE_DIR}/${PROJECT_DEPS_DIR})
  15. set(GOOGLETEST_DEPS_DIR googletest)
  16. find_path(
  17. GOOGLETEST_INCLUDE_DIR NAMES gtest/gtest.h
  18. PATHS ${BUILD_DEPS_DIR}/${GOOGLETEST_DEPS_DIR}/googletest/include/
  19. NO_DEFAULT_PATH
  20. )
  21. find_path(
  22. GOOGLEMOCK_INCLUDE_DIR NAMES gmock/gmock.h
  23. PATHS ${BUILD_DEPS_DIR}/${GOOGLETEST_DEPS_DIR}/googlemock/include/
  24. NO_DEFAULT_PATH
  25. )
  26. find_library(
  27. GOOGLETEST_LIBRARY NAMES gtest
  28. PATHS ${BUILD_DEPS_DIR}/${GOOGLETEST_DEPS_DIR}/build/googlemock/gtest/
  29. PATH_SUFFIXES Release
  30. NO_DEFAULT_PATH
  31. )
  32. find_library(
  33. GOOGLETEST_MAIN_LIBRARY NAMES gtest_main
  34. PATHS ${BUILD_DEPS_DIR}/${GOOGLETEST_DEPS_DIR}/build/googlemock/gtest/
  35. PATH_SUFFIXES Release
  36. NO_DEFAULT_PATH
  37. )
  38. find_library(
  39. GOOGLEMOCK_LIBRARY NAMES gmock
  40. PATHS ${BUILD_DEPS_DIR}/${GOOGLETEST_DEPS_DIR}/build/googlemock/
  41. PATH_SUFFIXES Release
  42. NO_DEFAULT_PATH
  43. )
  44. find_library(
  45. GOOGLEMOCK_MAIN_LIBRARY NAMES gmock_main
  46. PATHS ${BUILD_DEPS_DIR}/${GOOGLETEST_DEPS_DIR}/build/googlemock/
  47. PATH_SUFFIXES Release
  48. NO_DEFAULT_PATH
  49. )
  50. include(FindPackageHandleStandardArgs)
  51. find_package_handle_standard_args(
  52. GOOGLETEST
  53. FOUND_VAR GOOGLETEST_FOUND
  54. REQUIRED_VARS
  55. GOOGLETEST_LIBRARY
  56. GOOGLETEST_MAIN_LIBRARY
  57. GOOGLEMOCK_LIBRARY
  58. GOOGLEMOCK_MAIN_LIBRARY
  59. GOOGLETEST_INCLUDE_DIR
  60. GOOGLEMOCK_INCLUDE_DIR
  61. )
  62. if(GOOGLETEST_FOUND)
  63. set(
  64. GOOGLETEST_LIBRARIES
  65. ${GOOGLETEST_LIBRARY}
  66. ${GOOGLETEST_MAIN_LIBRARY}
  67. ${GOOGLEMOCK_LIBRARY}
  68. ${GOOGLEMOCK_MAIN_LIBRARY}
  69. )
  70. set(
  71. GOOGLETEST_INCLUDE_DIRS
  72. ${GOOGLETEST_INCLUDE_DIR}
  73. ${GOOGLEMOCK_INCLUDE_DIR}
  74. )
  75. endif(GOOGLETEST_FOUND)
  76. mark_as_advanced(
  77. GOOGLETEST_INCLUDE_DIR
  78. GOOGLEMOCK_INCLUDE_DIR
  79. GOOGLETEST_LIBRARY
  80. GOOGLETEST_MAIN_LIBRARY
  81. GOOGLEMOCK_LIBRARY
  82. GOOGLEMOCK_MAIN_LIBRARY
  83. )