1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
From bd1db368b333783697d686c82c42e48c4bec8b9e Mon Sep 17 00:00:00 2001
From: James Le Cuirot <chewi@gentoo.org>
Date: Fri, 21 Aug 2020 23:13:58 +0100
Subject: [PATCH] Add BARRIER_USE_EXTERNAL_GTEST CMake option to use external
GTest
---
CMakeLists.txt | 1 +
src/test/CMakeLists.txt | 38 ++++++++++++++++++++----------
src/test/integtests/CMakeLists.txt | 4 +---
src/test/unittests/CMakeLists.txt | 4 +---
4 files changed, 29 insertions(+), 18 deletions(-)
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 <http://www.gnu.org/licenses/>.
-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})
--
2.26.2
|