FindGMock.cmake
Go to the documentation of this file.
00001 ############################################################################## 00002 # @file FindGMock.cmake 00003 # @brief Find Google Mock package. 00004 # 00005 # @par Input variables: 00006 # <table border="0"> 00007 # <tr> 00008 # @tp @b GMock_DIR @endtp 00009 # <td>The Google Mock package files are searched under the specified 00010 # root directory. If they are not found there, the default search 00011 # paths are considered. This variable can also be set as environment 00012 # variable.</td> 00013 # </tr> 00014 # <tr> 00015 # @tp @b GMOCK_DIR @endtp 00016 # <td>Alternative environment variable for @p GMock_DIR.</td> 00017 # </tr> 00018 # <tr> 00019 # @tp @b GMock_SHARED_LIBRARIES @endtp 00020 # <td>Forces this module to search for shared libraries. 00021 # Otherwise, static libraries are preferred.</td> 00022 # </tr> 00023 # </table> 00024 # 00025 # @par Output variables: 00026 # <table border="0"> 00027 # <tr> 00028 # @tp @b GMock_FOUND @endtp 00029 # <td>Whether the package was found and the following CMake variables are valid.</td> 00030 # </tr> 00031 # <tr> 00032 # @tp @b GMock_INCLUDE_DIR @endtp 00033 # <td>Package include directories.</td> 00034 # </tr> 00035 # <tr> 00036 # @tp @b GMock_INCLUDES @endtp 00037 # <td>Include directories including prerequisite libraries.</td> 00038 # </tr> 00039 # <tr> 00040 # @tp @b GMock_LIBRARY @endtp 00041 # <td>Package libraries.</td> 00042 # </tr> 00043 # <tr> 00044 # @tp @b GMock_LIBRARIES @endtp 00045 # <td>Package ibraries and prerequisite libraries.</td> 00046 # </tr> 00047 # </table> 00048 # 00049 # Copyright (c) 2011, 2012 University of Pennsylvania. All rights reserved.<br /> 00050 # See https://www.cbica.upenn.edu/sbia/software/license.html or COPYING file. 00051 # 00052 # Contact: SBIA Group <sbia-software at uphs.upenn.edu> 00053 # 00054 # @ingroup CMakeFindModules 00055 ############################################################################## 00056 00057 # ---------------------------------------------------------------------------- 00058 # initialize search 00059 if (NOT GMock_DIR) 00060 if ($ENV{GMOCK_DIR}) 00061 set (GMock_DIR "$ENV{GMOCK_DIR}" CACHE PATH "Installation prefix for Google Mock.") 00062 else () 00063 set (GMock_DIR "$ENV{GMock_DIR}" CACHE PATH "Installation prefix for Google Mock.") 00064 endif () 00065 endif () 00066 00067 set (GMock_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) 00068 00069 if (GMock_SHARED_LIBRARIES) 00070 if (WIN32) 00071 set (CMAKE_FIND_LIBRARY_SUFFIXES .dll) 00072 else () 00073 set (CMAKE_FIND_LIBRARY_SUFFIXES .so) 00074 endif() 00075 else () 00076 if (WIN32) 00077 set (CMAKE_FIND_LIBRARY_SUFFIXES .lib) 00078 else () 00079 set (CMAKE_FIND_LIBRARY_SUFFIXES .a) 00080 endif() 00081 endif () 00082 00083 # ---------------------------------------------------------------------------- 00084 # find paths/files 00085 if (GMock_DIR) 00086 00087 find_path ( 00088 GMock_INCLUDE_DIR 00089 NAMES gmock.h 00090 HINTS "${GMock_DIR}" 00091 PATH_SUFFIXES "include/gmock" 00092 DOC "Include directory for Google Mock." 00093 NO_DEFAULT_PATH 00094 ) 00095 00096 find_library ( 00097 GMock_LIBRARY 00098 NAMES gmock 00099 HINTS "${GMock_DIR}" 00100 PATH_SUFFIXES "lib" 00101 DOC "Link library for Google Mock (gmock)." 00102 NO_DEFAULT_PATH 00103 ) 00104 00105 else () 00106 00107 find_path ( 00108 GMock_INCLUDE_DIR 00109 NAMES gmock.h 00110 HINTS ENV C_INCLUDE_PATH ENV CXX_INCLUDE_PATH 00111 DOC "Include directory for Google Mock." 00112 ) 00113 00114 find_library ( 00115 GMock_LIBRARY 00116 NAMES gmock 00117 HINTS ENV LD_LIBRARY_PATH 00118 DOC "Link library for Google Mock (gmock)." 00119 ) 00120 00121 endif () 00122 00123 mark_as_advanced (GMock_INCLUDE_DIR) 00124 mark_as_advanced (GMock_LIBRARY) 00125 00126 # ---------------------------------------------------------------------------- 00127 # prerequisite libraries 00128 set (GMock_INCLUDES "${GMock_INCLUDE_DIR}") 00129 set (GMock_LIBRARIES "${GMock_LIBRARY}") 00130 00131 # ---------------------------------------------------------------------------- 00132 # reset CMake variables 00133 set (CMAKE_FIND_LIBRARY_SUFFIXES ${GTest_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES}) 00134 00135 # ---------------------------------------------------------------------------- 00136 # aliases / backwards compatibility 00137 set (GMock_INCLUDE_DIRS "${GTest_INCLUDES}") 00138 00139 # ---------------------------------------------------------------------------- 00140 # handle the QUIETLY and REQUIRED arguments and set *_FOUND to TRUE 00141 # if all listed variables are found or TRUE 00142 include (FindPackageHandleStandardArgs) 00143 00144 find_package_handle_standard_args ( 00145 GMock 00146 REQUIRED_VARS 00147 GMock_INCLUDE_DIR 00148 GMock_LIBRARY 00149 ) 00150 00151 set (GMock_FOUND "${GMOCK_FOUND}") 00152 00153 # ---------------------------------------------------------------------------- 00154 # set GMock_DIR 00155 if (NOT GMock_DIR AND GMock_FOUND) 00156 string (REGEX REPLACE "include(/gmock)?/?" "" GMock_PREFIX "${GMock_INCLUDE_DIR}") 00157 set (GMock_DIR "${GMock_PREFIX}" CACHE PATH "Installation prefix for GMock." FORCE) 00158 unset (GMock_PREFIX) 00159 endif ()