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)
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
30 -DBUILD_SHARED_LIBS=OFF
31 -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>)
36 if(Gtest_FIND_VERSION)
37 if(Gtest_FIND_VERSION_EXACT)
38 set(Gtest_FIND_SPEC "=${Gtest_FIND_VERSION_COMPLETE}")
40 set(Gtest_FIND_SPEC ">=${Gtest_FIND_VERSION_COMPLETE}")
44 find_package(PkgConfig QUIET)
46 pkg_check_modules(PC_GTEST gtest${Gtest_FIND_SPEC} QUIET)
47 set(GTEST_VERSION ${PC_GTEST_VERSION})
49 set(GTEST_VERSION ${Gtest_FIND_VERSION_COMPLETE})
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)
64 include(FindPackageHandleStandardArgs)
65 find_package_handle_standard_args(Gtest
66 REQUIRED_VARS GTEST_LIBRARY GTEST_INCLUDE_DIR
67 VERSION_VAR GTEST_VERSION)
70 set(GTEST_LIBRARIES ${GTEST_LIBRARY})
71 set(GTEST_INCLUDE_DIRS ${GTEST_INCLUDE_DIR})
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}")
81 mark_as_advanced(GTEST_INCLUDE_DIR GTEST_LIBRARY)