Skip to content

Commit ddcc042

Browse files
authored
Merge pull request #232 from xvitaly/system-gtest
Added support of packaged GTest for running unit tests
2 parents f732569 + 2951ee6 commit ddcc042

File tree

1 file changed

+30
-24
lines changed

1 file changed

+30
-24
lines changed

CMakeLists.txt

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -301,32 +301,38 @@ endif (SQLITECPP_BUILD_EXAMPLES)
301301

302302
option(SQLITECPP_BUILD_TESTS "Build and run tests." OFF)
303303
if (SQLITECPP_BUILD_TESTS)
304-
# deactivate some warnings for compiling the gtest library
305-
if (NOT MSVC)
306-
add_compile_options(-Wno-variadic-macros -Wno-long-long -Wno-switch-enum -Wno-float-equal -Wno-conversion-null -Wno-switch-default -Wno-pedantic)
307-
endif (NOT MSVC)
308-
309-
# add the subdirectory containing the CMakeLists.txt for the gtest library
310-
# TODO: under Linux, uses libgtest-dev if found
311-
if (NOT EXISTS "${PROJECT_SOURCE_DIR}/googletest/CMakeLists.txt")
312-
message(FATAL_ERROR "Missing 'googletest' submodule! Either use 'git submodule init' and 'git submodule update' to get googletest according to the README, or deactivate unit tests with -DSQLITECPP_BUILD_TESTS=OFF")
313-
endif ()
314-
add_subdirectory(googletest)
315-
include_directories("${PROJECT_SOURCE_DIR}/googletest/googletest/include")
316-
317-
# Add definitions to keep googletest from making the compilation fail
318-
if (MSVC)
319-
if (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS_EQUAL 1919) # OR MSVC_TOOLSET_VERSION EQUAL 141)
320-
target_compile_definitions(gtest PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
321-
target_compile_definitions(gtest_main PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
322-
target_compile_definitions(gmock PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
323-
target_compile_definitions(gmock_main PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
324-
endif (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS_EQUAL 1919)
325-
endif (MSVC)
326-
327304
# add the unit test executable
328305
add_executable(SQLiteCpp_tests ${SQLITECPP_TESTS})
329-
target_link_libraries(SQLiteCpp_tests gtest_main SQLiteCpp sqlite3)
306+
307+
find_package(GTest)
308+
if (GTEST_FOUND)
309+
target_link_libraries(SQLiteCpp_tests GTest::GTest GTest::Main SQLiteCpp sqlite3)
310+
else (GTEST_FOUND)
311+
# deactivate some warnings for compiling the gtest library
312+
if (NOT MSVC)
313+
add_compile_options(-Wno-variadic-macros -Wno-long-long -Wno-switch-enum -Wno-float-equal -Wno-conversion-null -Wno-switch-default -Wno-pedantic)
314+
endif (NOT MSVC)
315+
316+
# add the subdirectory containing the CMakeLists.txt for the gtest library
317+
if (NOT EXISTS "${PROJECT_SOURCE_DIR}/googletest/CMakeLists.txt")
318+
message(FATAL_ERROR "Missing 'googletest' submodule! Either use 'git submodule init' and 'git submodule update' to get googletest according to the README, or deactivate unit tests with -DSQLITECPP_BUILD_TESTS=OFF")
319+
endif ()
320+
add_subdirectory(googletest)
321+
include_directories("${PROJECT_SOURCE_DIR}/googletest/googletest/include")
322+
323+
# Add definitions to keep googletest from making the compilation fail
324+
if (MSVC)
325+
if (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS_EQUAL 1919) # OR MSVC_TOOLSET_VERSION EQUAL 141)
326+
target_compile_definitions(gtest PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
327+
target_compile_definitions(gtest_main PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
328+
target_compile_definitions(gmock PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
329+
target_compile_definitions(gmock_main PUBLIC _SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING)
330+
endif (MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS_EQUAL 1919)
331+
endif (MSVC)
332+
333+
target_link_libraries(SQLiteCpp_tests gtest_main SQLiteCpp sqlite3)
334+
endif (GTEST_FOUND)
335+
330336
# Link target with dl for linux
331337
if (UNIX AND NOT APPLE)
332338
target_link_libraries(SQLiteCpp_tests dl)

0 commit comments

Comments
 (0)