~dobey/cmake-extras/intltool-fixes

« back to all changes in this revision

Viewing changes to src/FindGMock.cmake

  • Committer: Bileto Bot
  • Date: 2016-11-25 00:49:11 UTC
  • mfrom: (45.1.4 more-gtest-fixes)
  • Revision ID: ci-train-bot@canonical.com-20161125004911-n62kqltqrjcw19b8
More appropriate fix for gtest 1.8, backward compatible with 1.7.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
# NOTE: Due to the way this package finder is implemented, do not attempt
29
29
# to find the GMock package more than once.
30
30
 
 
31
find_package(Threads)
 
32
 
31
33
if (EXISTS "/usr/src/googletest")
32
34
    # As of version 1.8.0
33
 
    set (GMOCK_SOURCE_DIR "/usr/src/googletest/googlemock" CACHE PATH "gmock source directory")
34
 
    set (GMOCK_INCLUDE_DIRS "${GMOCK_SOURCE_DIR}/include" CACHE PATH "gmock source include directory")
35
 
    set (GTEST_INCLUDE_DIRS "/usr/src/googletest/googletest/include" CACHE PATH "gtest source include directory")
 
35
    set(GMOCK_SOURCE_DIR "/usr/src/googletest/googlemock" CACHE PATH "gmock source directory")
 
36
    set(GMOCK_INCLUDE_DIRS "${GMOCK_SOURCE_DIR}/include" CACHE PATH "gmock source include directory")
 
37
    set(GTEST_INCLUDE_DIRS "/usr/src/googletest/googletest/include" CACHE PATH "gtest source include directory")
36
38
else()
37
 
    set (GMOCK_SOURCE_DIR "/usr/src/gmock" CACHE PATH "gmock source directory")
38
 
    set (GMOCK_INCLUDE_DIRS "/usr/include/gmock/include" CACHE PATH "gmock source include directory")
39
 
    set (GTEST_INCLUDE_DIRS "${GMOCK_SOURCE_DIR}/gtest/include" CACHE PATH "gtest source include directory")
 
39
    set(GMOCK_SOURCE_DIR "/usr/src/gmock" CACHE PATH "gmock source directory")
 
40
    set(GMOCK_INCLUDE_DIRS "/usr/include" CACHE PATH "gmock source include directory")
 
41
    set(GTEST_INCLUDE_DIRS "/usr/include" CACHE PATH "gtest source include directory")
40
42
endif()
41
43
 
42
44
# We add -g so we get debug info for the gtest stack frames with gdb.
43
45
# The warnings are suppressed so we get a noise-free build for gtest and gmock if the caller
44
46
# has these warnings enabled.
45
 
set(old_cxx_flags ${CMAKE_CXX_FLAGS})
46
 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wno-old-style-cast -Wno-missing-field-initializers -Wno-ctor-dtor-privacy -Wno-switch-default")
47
 
add_subdirectory(${GMOCK_SOURCE_DIR} "${CMAKE_CURRENT_BINARY_DIR}/gmock")
48
 
set(CMAKE_CXX_FLAGS ${old_cxx_flags})
 
47
set(findgmock_cxx_flags "${CMAKE_CXX_FLAGS} -g -Wno-old-style-cast -Wno-missing-field-initializers -Wno-ctor-dtor-privacy -Wno-switch-default")
 
48
 
 
49
set(findgmock_bin_dir "${CMAKE_CURRENT_BINARY_DIR}/gmock")
 
50
set(findgmock_gtest_lib "${findgmock_bin_dir}/gtest/libgtest.a")
 
51
set(findgmock_gtest_main_lib "${findgmock_bin_dir}/gtest/libgtest_main.a")
 
52
set(findgmock_gmock_lib "${findgmock_bin_dir}/libgmock.a")
 
53
set(findgmock_gmock_main_lib "${findgmock_bin_dir}/libgmock_main.a")
 
54
 
 
55
include(ExternalProject)
 
56
ExternalProject_Add(GMock SOURCE_DIR "${GMOCK_SOURCE_DIR}"
 
57
                          BINARY_DIR "${findgmock_bin_dir}"
 
58
                          BUILD_BYPRODUCTS "${findgmock_gtest_lib}"
 
59
                                           "${findgmock_gtest_main_lib}"
 
60
                                           "${findgmock_gmock_lib}"
 
61
                                           "${findgmock_gmock_main_lib}"
 
62
                          INSTALL_COMMAND ""
 
63
                          CMAKE_ARGS "-DCMAKE_CXX_FLAGS=${findgmock_cxx_flags}")
 
64
 
 
65
add_library(gtest INTERFACE)
 
66
target_include_directories(gtest INTERFACE ${GTEST_INCLUDE_DIRS})
 
67
target_link_libraries(gtest INTERFACE ${findgmock_gtest_lib} ${CMAKE_THREAD_LIBS_INIT})
 
68
add_dependencies(gtest GMock)
 
69
 
 
70
add_library(gtest_main INTERFACE)
 
71
target_include_directories(gtest_main INTERFACE ${GTEST_INCLUDE_DIRS})
 
72
target_link_libraries(gtest_main INTERFACE ${findgmock_gtest_main_lib} gtest)
 
73
 
 
74
add_library(gmock INTERFACE)
 
75
target_include_directories(gmock INTERFACE ${GMOCK_INCLUDE_DIRS})
 
76
target_link_libraries(gmock INTERFACE ${findgmock_gmock_lib} gtest)
 
77
 
 
78
add_library(gmock_main INTERFACE)
 
79
target_include_directories(gmock_main INTERFACE ${GMOCK_INCLUDE_DIRS})
 
80
target_link_libraries(gmock_main INTERFACE ${findgmock_gmock_main_lib} gmock)
49
81
 
50
82
set(GTEST_LIBRARIES gtest)
51
83
set(GTEST_MAIN_LIBRARIES gtest_main)
52
84
set(GMOCK_LIBRARIES gmock gmock_main)
53
 
 
54
85
set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES})
 
86
 
 
87
unset(findgmock_cxx_flags)
 
88
unset(findgmock_bin_dir)
 
89
unset(findgmock_gtest_lib)
 
90
unset(findgmock_gtest_main_lib)
 
91
unset(findgmock_gmock_lib)
 
92
unset(findgmock_gmock_main_lib)