~ci-train-bot/content-hub/content-hub-ubuntu-zesty-2547

« back to all changes in this revision

Viewing changes to cmake/FindGtest.cmake

  • Committer: Bileto Bot
  • Author(s): Ken VanDine
  • Date: 2016-11-28 17:39:34 UTC
  • mfrom: (307.1.1 zesty-gmock-fix)
  • Revision ID: ci-train-bot@canonical.com-20161128173934-qct36b581ob1h3bp
Fix build failure on zesty due to googletest 1.8. Also refactored tests/acceptance-tests/CMakeLists.txt to make adding tests less cumbersome. (LP: #1644062)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
include(ExternalProject)
 
2
include(FindPackageHandleStandardArgs)
 
3
 
 
4
#gtest
 
5
if (EXISTS /usr/src/googletest)
 
6
    set (USING_GOOGLETEST_1_8 TRUE)
 
7
    set (GTEST_INSTALL_DIR /usr/src/googletest/googletest/include)
 
8
else()
 
9
    set(GTEST_INSTALL_DIR /usr/src/gmock/gtest/include)
 
10
endif()
 
11
find_path(GTEST_INCLUDE_DIR gtest/gtest.h
 
12
            HINTS ${GTEST_INSTALL_DIR})
 
13
 
 
14
#gmock
 
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")
 
19
endif()
 
20
 
 
21
find_path(GMOCK_INCLUDE_DIR gmock/gmock.h)
 
22
 
 
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)
 
27
else()
 
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)
 
31
endif()
 
32
 
 
33
set(GTEST_CMAKE_ARGS "")
 
34
if (${MIR_IS_CROSS_COMPILING})
 
35
    set(GTEST_CMAKE_ARGS
 
36
        -DCMAKE_TOOLCHAIN_FILE=${CMAKE_MODULE_PATH}/LinuxCrossCompile.cmake)
 
37
endif()
 
38
 
 
39
if (USING_GOOGLETEST_1_8)
 
40
  list(APPEND GTEST_CMAKE_ARGS -DBUILD_GTEST=ON)
 
41
endif()
 
42
 
 
43
ExternalProject_Add(
 
44
    GMock
 
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}
 
52
 
 
53
    #we don't need to install, so skip
 
54
    INSTALL_COMMAND ""
 
55
)
 
56
 
 
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})
 
64
 
 
65
find_package_handle_standard_args(GTest  DEFAULT_MSG
 
66
                                    GMOCK_INCLUDE_DIR
 
67
                                    GTEST_INCLUDE_DIR)