Skip to content

Commit dbdadf6

Browse files
author
Gianfranco Costamagna
committed
GTest: make sure also system googletest can be used when building tests if found
1 parent bf81ec9 commit dbdadf6

File tree

2 files changed

+48
-39
lines changed

2 files changed

+48
-39
lines changed

CMakeLists.txt

Lines changed: 47 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -106,45 +106,54 @@ ADD_DEFINITIONS(
106106
)
107107

108108
if (LIBSERIAL_ENABLE_TESTING)
109+
FIND_PATH(GTEST_SRCPATH src/gtest.cc
110+
/usr/src/googletest/googletest
111+
/usr/src/googletest
112+
/usr/src/gtest
113+
)
114+
FIND_PACKAGE(GTest)
115+
SET(GTEST_DEPENDENCIES)
116+
SET(GTestMain gtest gtest_main)
109117
SET(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/gtest")
110-
111-
EXTERNALPROJECT_ADD(GTestExternal
112-
PREFIX "${GTEST_PREFIX}"
113-
URL https://github.com/google/googletest/archive/refs/tags/v1.13.0.tar.gz
114-
URL_HASH SHA1=bfa4b5131b6eaac06962c251742c96aab3f7aa78
115-
INSTALL_COMMAND ""
116-
)
117-
118-
SET(LIBPREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}")
119-
SET(LIBSUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}")
120-
121-
SET(GTEST_LOCATION "${GTEST_PREFIX}/src/GTestExternal-build/lib")
122-
SET(GTEST_LIBRARY "${GTEST_LOCATION}/${LIBPREFIX}gtest${LIBSUFFIX}")
123-
SET(GTEST_MAINLIB "${GTEST_LOCATION}/${LIBPREFIX}gtest_main${LIBSUFFIX}")
124-
125-
ADD_LIBRARY(GTest IMPORTED STATIC GLOBAL)
126-
SET_TARGET_PROPERTIES(GTest
127-
PROPERTIES
128-
IMPORTED_LOCATION "${GTEST_LIBRARY}"
129-
IMPORTED_LINK_INTERFACE_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}"
130-
)
131-
132-
ADD_LIBRARY(GTestMain IMPORTED STATIC GLOBAL)
133-
SET_TARGET_PROPERTIES(GTestMain
134-
PROPERTIES
135-
IMPORTED_LOCATION "${GTEST_MAINLIB}"
136-
IMPORTED_LINK_INTERFACE_LIBRARIES "${GTEST_LIBRARY};${CMAKE_THREAD_LIBS_INIT}"
137-
)
138-
139-
ADD_DEPENDENCIES(GTest GTestExternal)
140-
ADD_DEPENDENCIES(GTestMain GTestExternal)
141-
142-
EXTERNALPROJECT_GET_PROPERTY(GTestExternal source_dir)
143-
144-
INCLUDE_DIRECTORIES(
145-
BEFORE ${GTEST_PREFIX}/src/GTestExternal/googletest/include
146-
${Boost_INCLUDE_DIRS}
147-
)
118+
if(NOT GTEST_FOUND)
119+
EXTERNALPROJECT_ADD(GTestExternal
120+
PREFIX "${GTEST_PREFIX}"
121+
URL https://github.com/google/googletest/archive/refs/tags/v1.13.0.tar.gz
122+
URL_HASH SHA1=bfa4b5131b6eaac06962c251742c96aab3f7aa78
123+
INSTALL_COMMAND ""
124+
)
125+
126+
SET(LIBPREFIX "${CMAKE_STATIC_LIBRARY_PREFIX}")
127+
SET(LIBSUFFIX "${CMAKE_STATIC_LIBRARY_SUFFIX}")
128+
129+
SET(GTEST_LOCATION "${GTEST_PREFIX}/src/GTestExternal-build/lib")
130+
SET(GTEST_LIBRARY "${GTEST_LOCATION}/${LIBPREFIX}gtest${LIBSUFFIX}")
131+
SET(GTEST_MAINLIB "${GTEST_LOCATION}/${LIBPREFIX}gtest_main${LIBSUFFIX}")
132+
133+
ADD_LIBRARY(GTest IMPORTED STATIC GLOBAL)
134+
SET_TARGET_PROPERTIES(GTest
135+
PROPERTIES
136+
IMPORTED_LOCATION "${GTEST_LIBRARY}"
137+
IMPORTED_LINK_INTERFACE_LIBRARIES "${CMAKE_THREAD_LIBS_INIT}"
138+
)
139+
140+
ADD_LIBRARY(GTestMain IMPORTED STATIC GLOBAL)
141+
SET_TARGET_PROPERTIES(GTestMain
142+
PROPERTIES
143+
IMPORTED_LOCATION "${GTEST_MAINLIB}"
144+
IMPORTED_LINK_INTERFACE_LIBRARIES "${GTEST_LIBRARY};${CMAKE_THREAD_LIBS_INIT}"
145+
)
146+
SET(GTestMain GTestMain)
147+
ADD_DEPENDENCIES(GTest GTestExternal)
148+
ADD_DEPENDENCIES(GTestMain GTestExternal)
149+
150+
EXTERNALPROJECT_GET_PROPERTY(GTestExternal source_dir)
151+
152+
INCLUDE_DIRECTORIES(
153+
BEFORE ${GTEST_PREFIX}/src/GTestExternal/googletest/include
154+
${Boost_INCLUDE_DIRS}
155+
)
156+
endif()
148157
endif()
149158

150159
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)

test/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ADD_EXECUTABLE(UnitTests
77

88
TARGET_LINK_LIBRARIES(UnitTests
99
libserial_static
10-
GTestMain
10+
${GTestMain}
1111
)
1212

1313
ADD_EXECUTABLE(unit_tests

0 commit comments

Comments
 (0)