include(CheckCXXSourceRuns) find_path(GTest_INCLUDE_DIR gtest/gtest.h NO_DEFAULT_PATH PATHS "${PROJECT_SOURCE_DIR}/../thirdparty/googletest/googletest/include" "/usr/local/include" "/usr/include") find_path(GMock_INCLUDE_DIR gmock/gmock.h NO_DEFAULT_PATH PATHS "${PROJECT_SOURCE_DIR}/../thirdparty/googletest/googlemock/include" "/usr/local/include" "/usr/include") find_library(Gtest_LIBRARY NAMES libgtest.a HINTS "${PROJECT_SOURCE_DIR}/../thirdparty/googletest/build/googlemock/gtest" "/usr/local/lib" "/usr/lib") find_library(Gmock_LIBRARY NAMES libgmock.a HINTS "${PROJECT_SOURCE_DIR}/../thirdparty/googletest/build/googlemock" "/usr/local/lib" "/usr/lib") message(STATUS "Find GoogleTest include path: ${GTest_INCLUDE_DIR}") message(STATUS "Find GoogleMock include path: ${GMock_INCLUDE_DIR}") message(STATUS "Find Gtest library path: ${Gtest_LIBRARY}") message(STATUS "Find Gmock library path: ${Gmock_LIBRARY}") set(CMAKE_REQUIRED_INCLUDES ${GTest_INCLUDE_DIR} ${GMock_INCLUDE_DIR}) set(CMAKE_REQUIRED_LIBRARIES ${Gtest_LIBRARY} ${Gmock_LIBRARY} -lpthread) set(CMAKE_REQUIRED_FLAGS) check_cxx_source_runs(" #include #include int main(int argc, char *argv[]) { double pi = 3.14; EXPECT_EQ(pi, 3.14); return 0; } " GoogleTest_CHECK_FINE) message(STATUS "GoogleTest check: ${GoogleTest_CHECK_FINE}") include(FindPackageHandleStandardArgs) find_package_handle_standard_args( GoogleTest REQUIRED_VARS GTest_INCLUDE_DIR GMock_INCLUDE_DIR Gtest_LIBRARY Gmock_LIBRARY GoogleTest_CHECK_FINE) set(GoogleTest_INCLUDE_DIR ${GTest_INCLUDE_DIR} ${GMock_INCLUDE_DIR}) set(GoogleTest_LIBRARIES ${Gtest_LIBRARY} ${Gmock_LIBRARY}) mark_as_advanced( GoogleTest_INCLUDE_DIR GoogleTest_LIBRARIES)