2
# build_google_test_locally (dir) takes a subdirectory
3
# and builds Google Test in there locally if required
5
function (build_google_test_locally build_directory)
7
if (GOOGLE_TEST_AND_MOCK_FOUND)
9
if (GTEST_LOCAL_BUILD_REQUIRED)
11
add_subdirectory (${GTEST_ROOT_DIR}
14
endif (GTEST_LOCAL_BUILD_REQUIRED)
16
include_directories (${GTEST_INCLUDE_DIRS})
18
endif (GOOGLE_TEST_AND_MOCK_FOUND)
1
find_package (Threads REQUIRED)
3
# Find the the Google Mock include directory
4
# by searching the system-wide include directory
6
find_path (GMOCK_INCLUDE_DIR
10
set (GMOCK_INCLUDE_BASE "include/")
11
string (LENGTH ${GMOCK_INCLUDE_BASE} GMOCK_INCLUDE_BASE_LENGTH)
12
string (LENGTH ${GMOCK_INCLUDE_DIR} GMOCK_INCLUDE_DIR_LENGTH)
15
GMOCK_INCLUDE_PREFIX_LENGTH
16
"${GMOCK_INCLUDE_DIR_LENGTH} - ${GMOCK_INCLUDE_BASE_LENGTH}")
20
${GMOCK_INCLUDE_PREFIX_LENGTH}
23
set (GMOCK_SRC_DIR ${GMOCK_INCLUDE_PREFIX}/src/gmock CACHE PATH "Path to Google Mock Sources")
24
set (GMOCK_INCLUDE_DIR ${GMOCK_INCLUDE_DIR} CACHE PATH "Path to Google Mock Headers")
25
set (GTEST_INCLUDE_DIR ${GMOCK_SRC_DIR}/gtest/include CACHE PATH "Path to Google Test Headers")
27
set (GMOCK_LIBRARY "gmock" CACHE STRING "Name of the Google Mock library")
28
set (GMOCK_MAIN_LIBRARY "gmock_main" CACHE STIRNG "Name of the Google Mock main () library")
29
set (GTEST_BOTH_LIBRARIES ${CMAKE_THREAD_LIBS_INIT} gtest gtest_main)
31
endif (GMOCK_INCLUDE_DIR)
33
if (NOT GTEST_BOTH_LIBRARIES)
35
set (GTEST_FOUND FALSE)
37
else (NOT GTEST_BOTH_LIBRARIES)
39
set (GTEST_FOUND TRUE)
41
endif (NOT GTEST_BOTH_LIBRARIES)
43
if (NOT GMOCK_LIBRARY OR NOT GMOCK_MAIN_LIBRARY OR NOT GTEST_FOUND)
45
message ("Google Mock and Google Test not found - cannot build tests!")
46
set (GOOGLE_TEST_AND_MOCK_FOUND FALSE)
48
else (NOT GMOCK_LIBRARY OR NOT GMOCK_MAIN_LIBRARY OR NOT GTEST_FOUND)
50
set (GOOGLE_TEST_AND_MOCK_FOUND TRUE)
52
add_definitions(-DGTEST_USE_OWN_TR1_TUPLE=0)
53
add_subdirectory (${GMOCK_SRC_DIR} ${CMAKE_BINARY_DIR}/__gmock)
54
include_directories (${GMOCK_INCLUDE_DIR}
58
endif (NOT GMOCK_LIBRARY OR NOT GMOCK_MAIN_LIBRARY OR NOT GTEST_FOUND)