1
include(ExternalProject)
2
include(FindPackageHandleStandardArgs)
5
if (EXISTS /usr/src/googletest)
6
set (USING_GOOGLETEST_1_8 TRUE)
7
set (GTEST_INSTALL_DIR /usr/src/googletest/googletest/include)
9
set(GTEST_INSTALL_DIR /usr/src/gmock/gtest/include)
11
find_path(GTEST_INCLUDE_DIR gtest/gtest.h
12
HINTS ${GTEST_INSTALL_DIR})
15
find_path(GMOCK_INSTALL_DIR CMakeLists.txt
16
HINTS /usr/src/googletest /usr/src/gmock)
17
if(${GMOCK_INSTALL_DIR} STREQUAL "GMOCK_INSTALL_DIR-NOTFOUND")
18
message(FATAL_ERROR "google-mock package not found")
21
find_path(GMOCK_INCLUDE_DIR gmock/gmock.h)
23
if (USING_GOOGLETEST_1_8)
24
set(GMOCK_BASE_BINARY_DIR ${CMAKE_BINARY_DIR}/gmock/libs)
25
set(GMOCK_BINARY_DIR ${GMOCK_BASE_BINARY_DIR}/googlemock)
26
set(GTEST_BINARY_DIR ${GMOCK_BINARY_DIR}/gtest)
28
set(GMOCK_BASE_BINARY_DIR ${CMAKE_BINARY_DIR}/gmock/libs)
29
set(GMOCK_BINARY_DIR ${GMOCK_BASE_BINARY_DIR})
30
set(GTEST_BINARY_DIR ${GMOCK_BINARY_DIR}/gtest)
33
set(GTEST_CMAKE_ARGS "")
34
if (${MIR_IS_CROSS_COMPILING})
36
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_MODULE_PATH}/LinuxCrossCompile.cmake)
39
if (USING_GOOGLETEST_1_8)
40
list(APPEND GTEST_CMAKE_ARGS -DBUILD_GTEST=ON)
45
#where to build in source tree
46
PREFIX ${GMOCK_PREFIX}
47
#where the source is external to the project
48
SOURCE_DIR ${GMOCK_INSTALL_DIR}
49
#forward the compilers to the subproject so cross-arch builds work
50
CMAKE_ARGS ${GTEST_CMAKE_ARGS}
51
BINARY_DIR ${GMOCK_BASE_BINARY_DIR}
53
#we don't need to install, so skip
57
set(GMOCK_LIBRARY ${GMOCK_BINARY_DIR}/libgmock.a)
58
set(GMOCK_MAIN_LIBRARY ${GMOCK_BINARY_DIR}/libgmock_main.a)
59
set(GMOCK_BOTH_LIBRARIES ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY})
60
set(GTEST_LIBRARY ${GTEST_BINARY_DIR}/libgtest.a)
61
set(GTEST_MAIN_LIBRARY ${GTEST_BINARY_DIR}/libgtest_main.a)
62
set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARY} ${GTEST_MAIN_LIBRARY})
63
set(GTEST_ALL_LIBRARIES ${GTEST_BOTH_LIBRARIES} ${GMOCK_BOTH_LIBRARIES})
65
find_package_handle_standard_args(GTest DEFAULT_MSG