diff --git a/CMakeLists.txt b/CMakeLists.txt index 4947d20f..18b242db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,7 @@ project (barrier C CXX) option (BARRIER_BUILD_GUI "Build the GUI" ON) option (BARRIER_BUILD_INSTALLER "Build the installer" ON) option (BARRIER_BUILD_TESTS "Build the tests" ON) +option (BARRIER_USE_EXTERNAL_GTEST "Use external installation of Google Test framework" OFF) set (CMAKE_EXPORT_COMPILE_COMMANDS ON) set (CMAKE_CXX_STANDARD 14) diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index daecb317..4a50e701 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -14,19 +14,33 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -include_directories( - ../../ext/gtest - ../../ext/gtest/include - ../../ext/gmock - ../../ext/gmock/include) - -add_library(gtest STATIC ../../ext/gtest/src/gtest-all.cc) -add_library(gmock STATIC ../../ext/gmock/src/gmock-all.cc) +if (BARRIER_USE_EXTERNAL_GTEST) + include (FindPkgConfig) + find_package(GTest REQUIRED) + pkg_check_modules(GMOCK REQUIRED gmock) + include_directories( + ${GTEST_INCLUDE_DIRS} + ${GMOCK_INCLUDE_DIRS} + ) +else() + include_directories( + ../../ext/gtest + ../../ext/gtest/include + ../../ext/gmock + ../../ext/gmock/include + ) -if (UNIX) - # ignore warnings in gtest and gmock - set_target_properties(gtest PROPERTIES COMPILE_FLAGS "-w") - set_target_properties(gmock PROPERTIES COMPILE_FLAGS "-w") + add_library(gtest STATIC ../../ext/gtest/src/gtest-all.cc) + add_library(gmock STATIC ../../ext/gmock/src/gmock-all.cc) + + set(GTEST_LIBRARIES gtest) + set(GMOCK_LIBRARIES gmock) + + if (UNIX) + # ignore warnings in gtest and gmock + set_target_properties(gtest PROPERTIES COMPILE_FLAGS "-w") + set_target_properties(gmock PROPERTIES COMPILE_FLAGS "-w") + endif() endif() add_subdirectory(integtests) diff --git a/src/test/integtests/CMakeLists.txt b/src/test/integtests/CMakeLists.txt index 0460d8df..9ef875bd 100644 --- a/src/test/integtests/CMakeLists.txt +++ b/src/test/integtests/CMakeLists.txt @@ -68,8 +68,6 @@ endif() include_directories( ../../ - ../../../ext/gtest/include - ../../../ext/gmock/include ) if (UNIX) @@ -80,4 +78,4 @@ endif() add_executable(integtests ${sources}) target_link_libraries(integtests - arch base client common io ipc mt net platform server synlib gtest gmock ${libs} ${OPENSSL_LIBS}) + arch base client common io ipc mt net platform server synlib ${GTEST_LIBRARIES} ${GMOCK_LIBRARIES} ${libs} ${OPENSSL_LIBS}) diff --git a/src/test/unittests/CMakeLists.txt b/src/test/unittests/CMakeLists.txt index c46375ce..61a0d35f 100644 --- a/src/test/unittests/CMakeLists.txt +++ b/src/test/unittests/CMakeLists.txt @@ -50,8 +50,6 @@ list(APPEND headers ${platform_sources}) include_directories( ../../ - ../../../ext/gtest/include - ../../../ext/gmock/include ../../../ext ) @@ -67,4 +65,4 @@ endif() add_executable(unittests ${sources}) target_link_libraries(unittests - arch base client server common io net platform server synlib mt ipc gtest gmock ${libs} ${OPENSSL_LIBS}) + arch base client server common io net platform server synlib mt ipc ${GTEST_LIBRARIES} ${GMOCK_LIBRARIES} ${libs} ${OPENSSL_LIBS})