mirror of
https://bitbucket.org/smil3y/kde-extraapps.git
synced 2025-02-25 11:22:55 +00:00
133 lines
4.4 KiB
CMake
133 lines
4.4 KiB
CMake
# - Find Googlemock
|
|
# Find the google mock includes and the google mock libraries
|
|
# This module defines
|
|
# GOOGLEMOCK_INCLUDE_DIR, root google mock include dir
|
|
# GOOGLEMOCK_LIBRARY, the path to Google Mock library
|
|
# GOOGLEMOCK_LIBRARIES, the path to Google Mock and Google Test library
|
|
# GOOGLEMOCK_FOUND, whether Google Mock was found
|
|
|
|
find_program(GMOCK-CONFIG_EXECUTABLE NAMES gmock-config PATHS
|
|
${BIN_INSTALL_DIR}
|
|
/opt/local/bin
|
|
/usr/bin
|
|
)
|
|
|
|
if(GMOCK-CONFIG_EXECUTABLE)
|
|
exec_program(${GMOCK-CONFIG_EXECUTABLE} ARGS --includedir OUTPUT_VARIABLE GOOGLEMOCK_INCLUDE_DIR)
|
|
exec_program(${GMOCK-CONFIG_EXECUTABLE} ARGS --ldflags OUTPUT_VARIABLE GOOGLEMOCK_LDFLAGS)
|
|
exec_program(${GMOCK-CONFIG_EXECUTABLE} ARGS --libs OUTPUT_VARIABLE GOOGLEMOCK_libs_tmp)
|
|
set(GOOGLEMOCK_LIBRARIES ${GOOGLEMOCK_LDFLAGS} ${GOOGLEMOCK_libs_tmp})
|
|
|
|
if(GOOGLEMOCK_INCLUDE_DIR AND GOOGLEMOCK_LIBRARIES)
|
|
set(GOOGLEMOCK_FOUND TRUE)
|
|
message(STATUS "Found libgmock: ${GOOGLEMOCK_INCLUDE_DIR}, ${GOOGLEMOCK_LIBRARIES}")
|
|
else(GOOGLEMOCK_INCLUDE_DIR AND GOOGLEMOCK_LIBRARIES)
|
|
set(GOOGLEMOCK_FOUND FALSE)
|
|
if (GOOGLEMOCK_FIND_REQUIRED)
|
|
message(FATAL_ERROR "Could NOT find required package Googlemock")
|
|
endif(GOOGLEMOCK_FIND_REQUIRED)
|
|
endif(GOOGLEMOCK_INCLUDE_DIR AND GOOGLEMOCK_LIBRARIES)
|
|
|
|
else(GMOCK-CONFIG_EXECUTABLE)
|
|
|
|
find_path(GOOGLEMOCK_INCLUDE_DIR NAMES gmock.h
|
|
HINTS
|
|
~/usr/include
|
|
/opt/local/include
|
|
/usr/include
|
|
/usr/local/include
|
|
/opt/kde4/include
|
|
${KDE4_INCLUDE_DIR}
|
|
PATH_SUFFIXES gmock
|
|
)
|
|
|
|
find_library( GOOGLEMOCK_LIBRARY NAMES gmock
|
|
PATHS
|
|
~/usr/lib
|
|
/opt/local/lib
|
|
/usr/lib
|
|
/usr/lib64
|
|
/usr/local/lib
|
|
/opt/kde4/lib
|
|
${KDE4_LIB_DIR}
|
|
)
|
|
|
|
find_library( GOOGLEMOCK_DEP_GTEST_LIBRARY NAMES gtest
|
|
PATHS
|
|
~/usr/lib
|
|
/opt/local/lib
|
|
/usr/lib
|
|
/usr/lib64
|
|
/usr/local/lib
|
|
/opt/kde4/lib
|
|
${KDE4_LIB_DIR}
|
|
)
|
|
|
|
# google-mock >= 1.5 requires pthread
|
|
# see: http://code.google.com/p/googlemock/source/browse/trunk/CHANGES
|
|
if( NOT WIN32 AND GOOGLEMOCK_LIBRARY )
|
|
find_library( GOOGLEMOCK_DEP_PTHREAD_LIBRARY NAMES pthread
|
|
PATHS
|
|
~/usr/lib
|
|
/opt/local/lib
|
|
/usr/lib
|
|
/usr/lib64
|
|
/usr/local/lib
|
|
/opt/kde4/lib
|
|
${KDE4_LIB_DIR}
|
|
)
|
|
|
|
endif( NOT WIN32 AND GOOGLEMOCK_LIBRARY )
|
|
|
|
# Google recommends not to distribute a pre-build libary and ubuntu is following
|
|
# this advice with libgtest 1.6.0
|
|
# However they are distributing sources, so we are looking if we at least have
|
|
# them available
|
|
if( NOT GOOGLEMOCK_DEP_GTEST_LIBRARY )
|
|
find_path( GOOGLEMOCK_DEP_GTEST_SOURCES NAMES gtest
|
|
PATHS /usr/src
|
|
NO_DEFAULT_PATH
|
|
NO_CMAKE_PATH
|
|
)
|
|
|
|
# in this case we also have to use the static google mock library
|
|
set( OLD_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
|
set( CMAKE_FIND_LIBRARY_SUFFIXES .a)
|
|
find_library( GOOGLEMOCK_LIBRARY_STATIC NAMES gmock
|
|
PATHS
|
|
~/usr/lib
|
|
/opt/local/lib
|
|
/usr/lib
|
|
/usr/lib64
|
|
/usr/local/lib
|
|
/opt/kde4/lib
|
|
${KDE4_LIB_DIR}
|
|
)
|
|
set( CMAKE_FIND_LIBRARY_SUFFIXES ${OLD_CMAKE_FIND_LIBRARY_SUFFIXES})
|
|
endif( NOT GOOGLEMOCK_DEP_GTEST_LIBRARY )
|
|
|
|
# -- googlemock and gtest library available
|
|
if(GOOGLEMOCK_INCLUDE_DIR AND GOOGLEMOCK_LIBRARY AND GOOGLEMOCK_DEP_GTEST_LIBRARY)
|
|
set(GOOGLEMOCK_FOUND TRUE)
|
|
set(GOOGLEMOCK_LIBRARIES ${GOOGLEMOCK_LIBRARY} ${GOOGLEMOCK_DEP_GTEST_LIBRARY} ${GOOGLEMOCK_DEP_PTHREAD_LIBRARY})
|
|
message(STATUS "Found libgmock: ${GOOGLEMOCK_INCLUDE_DIR}, ${GOOGLEMOCK_LIBRARIES}")
|
|
|
|
|
|
# -- googlemock and gtest sources available
|
|
elseif(GOOGLEMOCK_INCLUDE_DIR AND GOOGLEMOCK_LIBRARY AND GOOGLEMOCK_DEP_GTEST_SOURCES)
|
|
set(GOOGLEMOCK_FOUND TRUE)
|
|
set(GOOGLEMOCK_LIBRARIES ${GOOGLEMOCK_LIBRARY_STATIC} gtest)
|
|
set(GOOGLEMOCK_GTEST_SOURCES "${GOOGLEMOCK_DEP_GTEST_SOURCES}/gtest" CACHE PATH "Path to the gtest sources")
|
|
message(STATUS "Found libgmock but need to build gtest: ${GOOGLEMOCK_INCLUDE_DIR}, ${GOOGLEMOCK_LIBRARIES} ${GOOGLEMOCK_DEP_GTEST_SOURCES}")
|
|
|
|
# -- googlemock but no gtest
|
|
else(GOOGLEMOCK_INCLUDE_DIR AND GOOGLEMOCK_LIBRARY AND GOOGLEMOCK_DEP_GTEST_SOURCES)
|
|
set(GOOGLEMOCK_FOUND FALSE)
|
|
if (GOOGLEMOCK_FIND_REQUIRED)
|
|
message(FATAL_ERROR "Could NOT find required package Googlemock or gtest")
|
|
endif(GOOGLEMOCK_FIND_REQUIRED)
|
|
endif(GOOGLEMOCK_INCLUDE_DIR AND GOOGLEMOCK_LIBRARY AND GOOGLEMOCK_DEP_GTEST_LIBRARY)
|
|
|
|
endif(GMOCK-CONFIG_EXECUTABLE)
|
|
|
|
mark_as_advanced(GOOGLEMOCK_INCLUDE_DIR GOOGLEMOCK_LIBRARIES)
|