Findgoogletest.cmake.template 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #
  2. # Copyright (c) Contributors to the Open 3D Engine Project.
  3. # For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. #
  5. # SPDX-License-Identifier: Apache-2.0 OR MIT
  6. #
  7. #
  8. # this file actually ingests the library and defines targets.
  9. # Googletest
  10. set(GOOGLETEST_INCLUDE_DIR $${CMAKE_CURRENT_LIST_DIR}/googletest/include)
  11. set(GOOGLETEST_LIBS_DIR $${CMAKE_CURRENT_LIST_DIR}/googletest/lib)
  12. set(GOOGLETEST_COMPILE_DEFINITIONS
  13. ${CUSTOM_ADDITIONAL_COMPILE_DEFINITIONS})
  14. set(GOOGLETEST_LINK_OPTIONS
  15. ${CUSTOM_ADDITIONAL_LINK_OPTIONS})
  16. # GTest
  17. #################################################################
  18. set(TARGET_WITH_NAMESPACE "3rdParty::googletest::GTest")
  19. if (NOT TARGET $${TARGET_WITH_NAMESPACE})
  20. set(GOOGLETEST_GTEST_LIBS_DEBUG $${GOOGLETEST_LIBS_DIR}/$${CMAKE_STATIC_LIBRARY_PREFIX}gtestd$${CMAKE_STATIC_LIBRARY_SUFFIX})
  21. set(GOOGLETEST_GTEST_LIBS_RELEASE $${GOOGLETEST_LIBS_DIR}/$${CMAKE_STATIC_LIBRARY_PREFIX}gtest$${CMAKE_STATIC_LIBRARY_SUFFIX})
  22. set(GOOGLETEST_GTEST_LIBRARY
  23. "$$<$$<CONFIG:profile>:$${GOOGLETEST_GTEST_LIBS_RELEASE}>"
  24. "$$<$$<CONFIG:Release>:$${GOOGLETEST_GTEST_LIBS_RELEASE}>"
  25. "$$<$$<CONFIG:Debug>:$${GOOGLETEST_GTEST_LIBS_DEBUG}>")
  26. add_library($${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
  27. ly_target_include_system_directories(TARGET $${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_INCLUDE_DIR})
  28. target_link_libraries($${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_GTEST_LIBRARY})
  29. target_link_options($${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_LINK_OPTIONS})
  30. target_compile_definitions($${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_COMPILE_DEFINITIONS})
  31. set(GOOGLETEST_GTEST_FOUND True)
  32. endif()
  33. # GTestMain
  34. #################################################################
  35. set(TARGET_WITH_NAMESPACE "3rdParty::googletest::GTestMain")
  36. if (NOT TARGET $${TARGET_WITH_NAMESPACE})
  37. set(GOOGLETEST_GTESTMAIN_LIBS_DEBUG $${GOOGLETEST_LIBS_DIR}/$${CMAKE_STATIC_LIBRARY_PREFIX}gtest_maind$${CMAKE_STATIC_LIBRARY_SUFFIX})
  38. set(GOOGLETEST_GTESTMAIN_LIBS_RELEASE $${GOOGLETEST_LIBS_DIR}/$${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main$${CMAKE_STATIC_LIBRARY_SUFFIX})
  39. set(GOOGLETEST_GTESTMAIN_LIBRARY
  40. "$$<$$<CONFIG:profile>:$${GOOGLETEST_GTESTMAIN_LIBS_RELEASE}>"
  41. "$$<$$<CONFIG:Release>:$${GOOGLETEST_GTESTMAIN_LIBS_RELEASE}>"
  42. "$$<$$<CONFIG:Debug>:$${GOOGLETEST_GTESTMAIN_LIBS_DEBUG}>")
  43. add_library($${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
  44. ly_target_include_system_directories(TARGET $${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_INCLUDE_DIR})
  45. target_link_libraries($${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_GTESTMAIN_LIBRARY})
  46. target_link_options($${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_LINK_OPTIONS})
  47. target_compile_definitions($${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_COMPILE_DEFINITIONS})
  48. set(GOOGLETEST_GTESTMAIN_FOUND True)
  49. endif()
  50. # GMock
  51. #################################################################
  52. set(TARGET_WITH_NAMESPACE "3rdParty::googletest::GMock")
  53. if (NOT TARGET $${TARGET_WITH_NAMESPACE})
  54. set(GOOGLETEST_GMOCK_LIBS_DEBUG $${GOOGLETEST_LIBS_DIR}/$${CMAKE_STATIC_LIBRARY_PREFIX}gmockd$${CMAKE_STATIC_LIBRARY_SUFFIX})
  55. set(GOOGLETEST_GMOCK_LIBS_RELEASE $${GOOGLETEST_LIBS_DIR}/$${CMAKE_STATIC_LIBRARY_PREFIX}gmock$${CMAKE_STATIC_LIBRARY_SUFFIX})
  56. set(GOOGLETEST_GMOCK_LIBRARY
  57. "$$<$$<CONFIG:profile>:$${GOOGLETEST_GMOCK_LIBS_RELEASE}>"
  58. "$$<$$<CONFIG:Release>:$${GOOGLETEST_GMOCK_LIBS_RELEASE}>"
  59. "$$<$$<CONFIG:Debug>:$${GOOGLETEST_GMOCK_LIBS_DEBUG}>")
  60. add_library($${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
  61. ly_target_include_system_directories(TARGET $${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_INCLUDE_DIR})
  62. target_link_libraries($${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_GMOCK_LIBRARY})
  63. target_link_options($${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_LINK_OPTIONS})
  64. target_compile_definitions($${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_COMPILE_DEFINITIONS})
  65. set(GOOGLETEST_GMOCK_FOUND True)
  66. endif()
  67. # GMockMain
  68. #################################################################
  69. set(TARGET_WITH_NAMESPACE "3rdParty::googletest::GMockMain")
  70. if (NOT TARGET $${TARGET_WITH_NAMESPACE})
  71. set(GOOGLETEST_GMOCKMAIN_LIBS_DEBUG $${GOOGLETEST_LIBS_DIR}/$${CMAKE_STATIC_LIBRARY_PREFIX}gmock_maind$${CMAKE_STATIC_LIBRARY_SUFFIX})
  72. set(GOOGLETEST_GMOCKMAIN_LIBS_RELEASE $${GOOGLETEST_LIBS_DIR}/$${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main$${CMAKE_STATIC_LIBRARY_SUFFIX})
  73. set(GOOGLETEST_GMOCKMAIN_LIBRARY
  74. "$$<$$<CONFIG:profile>:$${GOOGLETEST_GMOCKMAIN_LIBS_RELEASE}>"
  75. "$$<$$<CONFIG:Release>:$${GOOGLETEST_GMOCKMAIN_LIBS_RELEASE}>"
  76. "$$<$$<CONFIG:Debug>:$${GOOGLETEST_GMOCKMAIN_LIBS_DEBUG}>")
  77. add_library($${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
  78. ly_target_include_system_directories(TARGET $${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_INCLUDE_DIR})
  79. target_link_libraries($${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_GMOCKMAIN_LIBRARY})
  80. target_link_options($${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_LINK_OPTIONS})
  81. target_compile_definitions($${TARGET_WITH_NAMESPACE} INTERFACE $${GOOGLETEST_COMPILE_DEFINITIONS})
  82. set(GOOGLETEST_GMOCKMAIN_FOUND True)
  83. endif()