Merge pull request #26350 from jjd-uk/estuary_media_align
[xbmc.git] / cmake / modules / buildtools / FindGtest.cmake
blob6a267ebe80cb6545583a34f395a0bbdded1650cc
1 #.rst:
2 # FindGtest
3 # --------
4 # Finds the gtest library
6 # This will define the following variables::
8 # GTEST_FOUND - system has gtest
9 # GTEST_INCLUDE_DIRS - the gtest include directories
10 # GTEST_LIBRARIES - the gtest libraries
12 # and the following imported targets:
14 #   Gtest::Gtest   - The gtest library
16 if(ENABLE_INTERNAL_GTEST)
17   include(cmake/scripts/common/ModuleHelpers.cmake)
19   set(MODULE_LC gtest)
21   SETUP_BUILD_VARS()
23   set(GTEST_VERSION ${${MODULE}_VER})
25   # Override build type detection and always build as release
26   set(GTEST_BUILD_TYPE Release)
28   set(CMAKE_ARGS -DBUILD_GMOCK=OFF
29                  -DINSTALL_GTEST=ON
30                  -DBUILD_SHARED_LIBS=OFF
31                  -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>)
33   BUILD_DEP_TARGET()
34 else()
36   if(Gtest_FIND_VERSION)
37     if(Gtest_FIND_VERSION_EXACT)
38       set(Gtest_FIND_SPEC "=${Gtest_FIND_VERSION_COMPLETE}")
39     else()
40       set(Gtest_FIND_SPEC ">=${Gtest_FIND_VERSION_COMPLETE}")
41     endif()
42   endif()
44   find_package(PkgConfig QUIET)
45   if(PKG_CONFIG_FOUND)
46     pkg_check_modules(PC_GTEST gtest${Gtest_FIND_SPEC} QUIET)
47     set(GTEST_VERSION ${PC_GTEST_VERSION})
48   elseif(WIN32)
49     set(GTEST_VERSION ${Gtest_FIND_VERSION_COMPLETE})
50   endif()
52   find_path(GTEST_INCLUDE_DIR NAMES gtest/gtest.h
53                               HINTS ${PC_GTEST_INCLUDEDIR})
55   find_library(GTEST_LIBRARY_RELEASE NAMES gtest
56                                      HINTS ${PC_GTEST_LIBDIR})
57   find_library(GTEST_LIBRARY_DEBUG NAMES gtestd
58                                    HINTS ${PC_GTEST_LIBDIR})
60   include(SelectLibraryConfigurations)
61   select_library_configurations(GTEST)
62 endif()
64 include(FindPackageHandleStandardArgs)
65 find_package_handle_standard_args(Gtest
66                                   REQUIRED_VARS GTEST_LIBRARY GTEST_INCLUDE_DIR
67                                   VERSION_VAR GTEST_VERSION)
69 if(GTEST_FOUND)
70   set(GTEST_LIBRARIES ${GTEST_LIBRARY})
71   set(GTEST_INCLUDE_DIRS ${GTEST_INCLUDE_DIR})
72 endif()
74 if(NOT TARGET Gtest::Gtest)
75   add_library(Gtest::Gtest UNKNOWN IMPORTED)
76   set_target_properties(Gtest::Gtest PROPERTIES
77                                      IMPORTED_LOCATION "${GTEST_LIBRARY}"
78                                      INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIR}")
79 endif()
81 mark_as_advanced(GTEST_INCLUDE_DIR GTEST_LIBRARY)