Skip to content

Commit f90a88f

Browse files
committed
support for gtest/gmock >= 1.8.0
1 parent d0a1e0d commit f90a88f

File tree

1 file changed

+75
-48
lines changed

1 file changed

+75
-48
lines changed

cmake/modules/FindGMock.cmake

+75-48
Original file line numberDiff line numberDiff line change
@@ -147,56 +147,83 @@ else()
147147
endif()
148148

149149
if("${GMOCK_SRC_DIR}" STREQUAL "")
150-
if("${GMOCK_VER}" STREQUAL "1.8.0")
151-
set(GMOCK_VER "1.7.0")
152-
message("GMock ver 1.8 not supported -> switching to 1.7")
153-
#todo add 1.8 support from single repo of gtest
154-
endif()
155-
message(STATUS "Downloading GMock / GTest version ${GMOCK_VER}")
156-
ExternalProject_Add(
157-
gtest
158-
GIT_REPOSITORY "https://github.com/google/googletest.git"
159-
GIT_TAG "release-${GMOCK_VER}"
160-
PREFIX ${GMOCK_ROOT}
161-
INSTALL_COMMAND ""
162-
LOG_DOWNLOAD ON
163-
LOG_CONFIGURE ON
164-
LOG_BUILD ON
165-
CMAKE_ARGS ${GTEST_CMAKE_ARGS}
166-
)
167-
ExternalProject_Add(
168-
gmock
169-
GIT_REPOSITORY "https://github.com/google/googlemock.git"
170-
GIT_TAG "release-${GMOCK_VER}"
171-
PREFIX ${GMOCK_ROOT}
172-
INSTALL_COMMAND ""
173-
LOG_DOWNLOAD ON
174-
LOG_CONFIGURE ON
175-
LOG_BUILD ON
176-
CMAKE_ARGS ${GTEST_CMAKE_ARGS}
177-
DEPENDS gtest
178-
)
150+
message(STATUS "Downloading GMock / GTest version ${GMOCK_VER} from git")
151+
if("${GMOCK_VER}" STREQUAL "1.6.0" OR "${GMOCK_VER}" STREQUAL "1.7.0")
152+
ExternalProject_Add(
153+
gtest
154+
GIT_REPOSITORY "https://github.com/google/googletest.git"
155+
GIT_TAG "release-${GMOCK_VER}"
156+
PREFIX ${GMOCK_ROOT}
157+
INSTALL_COMMAND ""
158+
LOG_DOWNLOAD ON
159+
LOG_CONFIGURE ON
160+
LOG_BUILD ON
161+
CMAKE_ARGS ${GTEST_CMAKE_ARGS}
162+
)
163+
ExternalProject_Add(
164+
gmock
165+
GIT_REPOSITORY "https://github.com/google/googlemock.git"
166+
GIT_TAG "release-${GMOCK_VER}"
167+
PREFIX ${GMOCK_ROOT}
168+
INSTALL_COMMAND ""
169+
LOG_DOWNLOAD ON
170+
LOG_CONFIGURE ON
171+
LOG_BUILD ON
172+
CMAKE_ARGS ${GTEST_CMAKE_ARGS}
173+
DEPENDS gtest
174+
)
179175

180-
add_library(libgtest IMPORTED STATIC GLOBAL)
181-
add_dependencies(libgtest gtest)
182-
add_library(libgmock IMPORTED STATIC GLOBAL)
183-
add_dependencies(libgmock gmock)
184-
185-
ExternalProject_Get_Property(gtest source_dir binary_dir)
186-
set(GTEST_INCLUDE_DIR "${source_dir}/include")
187-
mark_as_advanced(GTEST_INCLUDE_DIR)
188-
set(GTEST_LIBRARY "${binary_dir}/${CMAKE_CFG_INTDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gtest${Suffix}")
189-
mark_as_advanced(GTEST_LIBRARY)
190-
set(GTEST_MAIN_LIBRARY "${binary_dir}/${CMAKE_CFG_INTDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${Suffix}")
191-
mark_as_advanced(GTEST_MAIN_LIBRARY)
192-
ExternalProject_Get_Property(gmock source_dir binary_dir)
193-
set(GMOCK_INCLUDE_DIR "${source_dir}/include")
194-
mark_as_advanced(GMOCK_INCLUDE_DIR)
195-
set(GMOCK_LIBRARY "${binary_dir}/${CMAKE_CFG_INTDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gmock${Suffix}")
196-
mark_as_advanced(GMOCK_LIBRARY)
197-
set(GMOCK_MAIN_LIBRARY "${binary_dir}/${CMAKE_CFG_INTDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gmock_main${Suffix}")
198-
mark_as_advanced(GMOCK_MAIN_LIBRARY)
176+
add_library(libgtest IMPORTED STATIC GLOBAL)
177+
add_dependencies(libgtest gtest)
178+
add_library(libgmock IMPORTED STATIC GLOBAL)
179+
add_dependencies(libgmock gmock)
180+
181+
ExternalProject_Get_Property(gtest source_dir binary_dir)
182+
set(GTEST_INCLUDE_DIR "${source_dir}/include")
183+
mark_as_advanced(GTEST_INCLUDE_DIR)
184+
set(GTEST_LIBRARY "${binary_dir}/${CMAKE_CFG_INTDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gtest${Suffix}")
185+
mark_as_advanced(GTEST_LIBRARY)
186+
set(GTEST_MAIN_LIBRARY "${binary_dir}/${CMAKE_CFG_INTDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${Suffix}")
187+
mark_as_advanced(GTEST_MAIN_LIBRARY)
188+
ExternalProject_Get_Property(gmock source_dir binary_dir)
189+
set(GMOCK_INCLUDE_DIR "${source_dir}/include")
190+
mark_as_advanced(GMOCK_INCLUDE_DIR)
191+
set(GMOCK_LIBRARY "${binary_dir}/${CMAKE_CFG_INTDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gmock${Suffix}")
192+
mark_as_advanced(GMOCK_LIBRARY)
193+
set(GMOCK_MAIN_LIBRARY "${binary_dir}/${CMAKE_CFG_INTDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gmock_main${Suffix}")
194+
mark_as_advanced(GMOCK_MAIN_LIBRARY)
195+
else()
196+
ExternalProject_Add(
197+
gmock
198+
GIT_REPOSITORY "https://github.com/google/googletest.git"
199+
GIT_TAG "release-${GMOCK_VER}"
200+
PREFIX ${GMOCK_ROOT}
201+
INSTALL_COMMAND ""
202+
LOG_DOWNLOAD ON
203+
LOG_CONFIGURE ON
204+
LOG_BUILD ON
205+
CMAKE_ARGS ${GTEST_CMAKE_ARGS}
206+
)
199207

208+
add_library(libgtest IMPORTED STATIC GLOBAL)
209+
add_dependencies(libgtest gmock)
210+
add_library(libgmock IMPORTED STATIC GLOBAL)
211+
add_dependencies(libgmock gmock)
212+
213+
ExternalProject_Get_Property(gmock source_dir binary_dir)
214+
set(GTEST_INCLUDE_DIR "${source_dir}/googlemock/gtest/include")
215+
set(GTEST_LIBRARY "${binary_dir}/googlemock/gtest/${CMAKE_CFG_INTDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gtest${Suffix}")
216+
set(GTEST_MAIN_LIBRARY "${binary_dir}/googlemock/gtest/${CMAKE_CFG_INTDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gtest_main${Suffix}")
217+
set(GMOCK_INCLUDE_DIR "${source_dir}/googlemock/include")
218+
set(GMOCK_LIBRARY "${binary_dir}/googlemock/${CMAKE_CFG_INTDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gmock${Suffix}")
219+
set(GMOCK_MAIN_LIBRARY "${binary_dir}/googlemock/${CMAKE_CFG_INTDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gmock_main${Suffix}")
220+
mark_as_advanced(GMOCK_LIBRARY)
221+
mark_as_advanced(GMOCK_INCLUDE_DIR)
222+
mark_as_advanced(GTEST_MAIN_LIBRARY)
223+
mark_as_advanced(GTEST_LIBRARY)
224+
mark_as_advanced(GTEST_INCLUDE_DIR)
225+
mark_as_advanced(GMOCK_MAIN_LIBRARY)
226+
endif()
200227
else()
201228
Message(STATUS "Building Gmock / Gtest from dir ${GMOCK_SRC_DIR}")
202229
ExternalProject_Add(

0 commit comments

Comments
 (0)