From e127f5b631c5579adab47510b962f5ea0027eebc Mon Sep 17 00:00:00 2001 From: Didier Raboud Date: Sun, 16 Dec 2012 11:38:36 +0100 Subject: Use system GMock and GTest if they are available - Drop library addition to upstream GTest. - Fallback to convenience copy if the system libraries are not installed. --- CMakeLists.txt | 18 +++++++++++++++--- lib/gtest/CMakeLists.txt | 1 - 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 33fb882..b625cd2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -127,13 +127,25 @@ endif() ## if(${TESTS}) + # Google Mock + find_path(GMOCK_INCLUDE_DIR NAMES gmock.h PATH_SUFFIXES gmock) + find_path(GMOCK_SRC_DIR NAMES src/gmock-all.cc PATHS /usr/src/ PATH_SUFFIXES gmock) # Google Test library find_path(GTEST_SRC_DIR NAMES src/gtest.cc src/gtest-all.cc PATHS /usr/src/ PATH_SUFFIXES gtest) - if(NOT GTEST_SRC_DIR) + if(GTEST_SRC_DIR AND GMOCK_INCLUDE_DIR AND GMOCK_SRC_DIR) + include_directories(${GMOCK_SRC_DIR}) + else(GTEST_SRC_DIR AND GMOCK_INCLUDE_DIR AND GMOCK_SRC_DIR) set(GTEST_SRC_DIR lib/gtest) - endif(NOT GTEST_SRC_DIR) - message(STATUS "Use Google Test from ${GTEST_SRC_DIR}") + set(GMOCK_SRC_DIR ${GTEST_SRC_DIR}) + set(GMOCK_INCLUDE_DIR ${GTEST_SRC_DIR}/include/gmock) + include_directories(${GTEST_SRC_DIR} ${GTEST_SRC_DIR}/include/) + endif(GTEST_SRC_DIR AND GMOCK_INCLUDE_DIR AND GMOCK_SRC_DIR) + + add_library(gmock STATIC ${GMOCK_SRC_DIR}/src/gmock-all.cc) add_subdirectory(${GTEST_SRC_DIR} bin/test) + + message(STATUS "Use Google Mock from ${GMOCK_SRC_DIR}") + message(STATUS "Use Google Test from ${GTEST_SRC_DIR}") endif() # Subdirectory with sources diff --git a/lib/gtest/CMakeLists.txt b/lib/gtest/CMakeLists.txt index 61813ae..1279f7d 100644 --- a/lib/gtest/CMakeLists.txt +++ b/lib/gtest/CMakeLists.txt @@ -7,4 +7,3 @@ add_definitions(-DGTEST_HAS_PTHREAD=0) # gtest-all.cc includes all other sources add_library(gtest STATIC src/gtest-all.cc) -add_library(gmock STATIC src/gmock-all.cc) -- cgit v1.2.3-1-g7c22