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 ()