Skip to content

Commit 209b141

Browse files
committed
Get gtest directly using FetchContent
1 parent f1f4d5f commit 209b141

File tree

4 files changed

+38
-218
lines changed

4 files changed

+38
-218
lines changed

CMakeLists.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
cmake_minimum_required(VERSION 3.14.0)
22
project(ur_client_library)
33

4-
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules/" ${CMAKE_MODULE_PATH})
5-
64
if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
75
message("${PROJECT_NAME}: You did not request a specific build type: selecting 'RelWithDebInfo'.")
86
set(CMAKE_BUILD_TYPE RelWithDebInfo)

CMakeModules/FindGTest.CMakeLists.txt.in

Lines changed: 0 additions & 15 deletions
This file was deleted.

CMakeModules/FindGTestPackage.cmake

Lines changed: 0 additions & 128 deletions
This file was deleted.

tests/CMakeLists.txt

Lines changed: 38 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,44 @@
11
cmake_minimum_required(VERSION 3.14.0)
22

3-
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../CMakeModules/" ${CMAKE_MODULE_PATH})
43

54
project(ur_client_library_tests)
65

7-
# This will allow cmake 3.0 and above to fail on missing link targets (when specified with an double colon syntax)
8-
# Note that not all packages are support the colon syntax, but if they do it is recomended to use this syntax, since it is less error prone.
9-
if(POLICY CMP0028)
10-
cmake_policy(SET CMP0028 NEW)
11-
endif()
12-
13-
if(POLICY CMP0054)
14-
cmake_policy(SET CMP0054 NEW)
15-
endif()
16-
17-
# Find dependencies for testing
18-
include(FindGTestPackage)
19-
find_gtest_package(GTEST_LIBRARIES)
20-
if (NOT TARGET ur_client_library::urcl)
21-
find_package(ur_client_library REQUIRED)
22-
endif()
236

7+
include(FetchContent)
8+
FetchContent_Declare(
9+
googletest
10+
GIT_REPOSITORY https://github.com/google/googletest.git
11+
GIT_TAG v1.15.2
12+
)
13+
# For Windows: Prevent overriding the parent project's compiler/linker settings
14+
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
15+
FetchContent_MakeAvailable(googletest)
2416

17+
include(GoogleTest)
2518

2619
# Build Tests
2720
if (INTEGRATION_TESTS)
2821
# Integration tests require a robot reachable at 192.168.56.101. Therefore, they have to be
2922
# activated separately.
3023
add_executable(rtde_tests test_rtde_client.cpp)
31-
target_include_directories(rtde_tests PRIVATE ${GTEST_INCLUDE_DIRS})
32-
target_link_libraries(rtde_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
24+
target_link_libraries(rtde_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
3325
gtest_add_tests(TARGET rtde_tests
3426
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
3527
)
3628

3729
add_executable(dashboard_client_tests test_dashboard_client.cpp)
38-
target_include_directories(dashboard_client_tests PRIVATE ${GTEST_INCLUDE_DIRS})
39-
target_link_libraries(dashboard_client_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
30+
target_link_libraries(dashboard_client_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
4031
gtest_add_tests(TARGET dashboard_client_tests
4132
)
4233

4334
add_executable(spline_tests test_spline_interpolation.cpp)
44-
target_include_directories(spline_tests PRIVATE ${GTEST_INCLUDE_DIRS})
45-
target_link_libraries(spline_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
35+
target_link_libraries(spline_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
4636
gtest_add_tests(TARGET spline_tests
4737
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
4838
)
4939

5040
add_executable(ur_driver_tests test_ur_driver.cpp)
51-
target_include_directories(ur_driver_tests PRIVATE ${GTEST_INCLUDE_DIRS})
52-
target_link_libraries(ur_driver_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
41+
target_link_libraries(ur_driver_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
5342
gtest_add_tests(TARGET ur_driver_tests
5443
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
5544
)
@@ -59,145 +48,121 @@ endif()
5948

6049

6150
add_executable(primary_parser_tests test_primary_parser.cpp)
62-
target_include_directories(primary_parser_tests PRIVATE ${GTEST_INCLUDE_DIRS})
63-
target_link_libraries(primary_parser_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
51+
target_link_libraries(primary_parser_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
6452
gtest_add_tests(TARGET primary_parser_tests
6553
)
6654

6755
add_executable(rtde_data_package_tests test_rtde_data_package.cpp)
68-
target_include_directories(rtde_data_package_tests PRIVATE ${GTEST_INCLUDE_DIRS})
69-
target_link_libraries(rtde_data_package_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
56+
target_link_libraries(rtde_data_package_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
7057
gtest_add_tests(TARGET rtde_data_package_tests
7158
)
7259

7360
add_executable(rtde_parser_tests test_rtde_parser.cpp)
74-
target_include_directories(rtde_parser_tests PRIVATE ${GTEST_INCLUDE_DIRS})
75-
target_link_libraries(rtde_parser_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
61+
target_link_libraries(rtde_parser_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
7662
gtest_add_tests(TARGET rtde_parser_tests
7763
)
7864

7965
add_executable(tcp_server_tests test_tcp_server.cpp)
80-
target_include_directories(tcp_server_tests PRIVATE ${GTEST_INCLUDE_DIRS})
81-
target_link_libraries(tcp_server_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
66+
target_link_libraries(tcp_server_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
8267
gtest_add_tests(TARGET tcp_server_tests
8368
)
8469

8570
add_executable(script_sender_tests test_script_sender.cpp)
86-
target_include_directories(script_sender_tests PRIVATE ${GTEST_INCLUDE_DIRS})
87-
target_link_libraries(script_sender_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
71+
target_link_libraries(script_sender_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
8872
gtest_add_tests(TARGET script_sender_tests
8973
)
9074

9175
add_executable(reverse_interface_tests test_reverse_interface.cpp)
92-
target_include_directories(reverse_interface_tests PRIVATE ${GTEST_INCLUDE_DIRS})
93-
target_link_libraries(reverse_interface_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
76+
target_link_libraries(reverse_interface_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
9477
gtest_add_tests(TARGET reverse_interface_tests
9578
)
9679

9780
add_executable(trajectory_point_interface_tests test_trajectory_point_interface.cpp)
98-
target_include_directories(trajectory_point_interface_tests PRIVATE ${GTEST_INCLUDE_DIRS})
99-
target_link_libraries(trajectory_point_interface_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
81+
target_link_libraries(trajectory_point_interface_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
10082
gtest_add_tests(TARGET trajectory_point_interface_tests
10183
)
10284

10385
add_executable(rtde_control_package_pause_tests test_rtde_control_package_pause.cpp)
104-
target_include_directories(rtde_control_package_pause_tests PRIVATE ${GTEST_INCLUDE_DIRS})
105-
target_link_libraries(rtde_control_package_pause_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
86+
target_link_libraries(rtde_control_package_pause_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
10687
gtest_add_tests(TARGET rtde_control_package_pause_tests
10788
)
10889

10990
add_executable(rtde_control_package_start_tests test_rtde_control_package_start.cpp)
110-
target_include_directories(rtde_control_package_start_tests PRIVATE ${GTEST_INCLUDE_DIRS})
111-
target_link_libraries(rtde_control_package_start_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
91+
target_link_libraries(rtde_control_package_start_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
11292
gtest_add_tests(TARGET rtde_control_package_start_tests
11393
)
11494

11595
add_executable(rtde_control_package_setup_outputs_tests test_rtde_control_package_setup_outputs.cpp)
116-
target_include_directories(rtde_control_package_setup_outputs_tests PRIVATE ${GTEST_INCLUDE_DIRS})
117-
target_link_libraries(rtde_control_package_setup_outputs_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
96+
target_link_libraries(rtde_control_package_setup_outputs_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
11897
gtest_add_tests(TARGET rtde_control_package_setup_outputs_tests
11998
)
12099

121100
add_executable(rtde_control_package_setup_inputs_tests test_rtde_control_package_setup_inputs.cpp)
122-
target_include_directories(rtde_control_package_setup_inputs_tests PRIVATE ${GTEST_INCLUDE_DIRS})
123-
target_link_libraries(rtde_control_package_setup_inputs_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
101+
target_link_libraries(rtde_control_package_setup_inputs_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
124102
gtest_add_tests(TARGET rtde_control_package_setup_inputs_tests
125103
)
126104

127105
add_executable(rtde_get_urcontrol_version_tests test_rtde_get_urcontrol_version.cpp)
128-
target_include_directories(rtde_get_urcontrol_version_tests PRIVATE ${GTEST_INCLUDE_DIRS})
129-
target_link_libraries(rtde_get_urcontrol_version_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
106+
target_link_libraries(rtde_get_urcontrol_version_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
130107
gtest_add_tests(TARGET rtde_get_urcontrol_version_tests
131108
)
132109

133110
add_executable(rtde_request_protocol_version_tests test_rtde_request_protocol_version.cpp)
134-
target_include_directories(rtde_request_protocol_version_tests PRIVATE ${GTEST_INCLUDE_DIRS})
135-
target_link_libraries(rtde_request_protocol_version_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
111+
target_link_libraries(rtde_request_protocol_version_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
136112
gtest_add_tests(TARGET rtde_request_protocol_version_tests
137113
)
138114

139115
add_executable(rtde_writer_tests test_rtde_writer.cpp)
140-
target_include_directories(rtde_writer_tests PRIVATE ${GTEST_INCLUDE_DIRS})
141-
target_link_libraries(rtde_writer_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
116+
target_link_libraries(rtde_writer_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
142117
gtest_add_tests(TARGET rtde_writer_tests
143118
)
144119

145120
add_executable(version_information_tests test_version_information.cpp)
146-
target_include_directories(version_information_tests PRIVATE ${GTEST_INCLUDE_DIRS})
147-
target_link_libraries(version_information_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
121+
target_link_libraries(version_information_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
148122
gtest_add_tests(TARGET version_information_tests
149123
)
150124

151125
add_executable(bin_parser_tests test_bin_parser.cpp)
152-
target_include_directories(bin_parser_tests PRIVATE ${GTEST_INCLUDE_DIRS})
153-
target_link_libraries(bin_parser_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
126+
target_link_libraries(bin_parser_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
154127
gtest_add_tests(TARGET bin_parser_tests
155128
)
156129

157130
add_executable(package_serializer_tests test_package_serializer.cpp)
158-
target_include_directories(package_serializer_tests PRIVATE ${GTEST_INCLUDE_DIRS})
159-
target_link_libraries(package_serializer_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
131+
target_link_libraries(package_serializer_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
160132
gtest_add_tests(TARGET package_serializer_tests
161133
)
162134

163135
add_executable(tcp_socket_tests test_tcp_socket.cpp)
164-
target_include_directories(tcp_socket_tests PRIVATE ${GTEST_INCLUDE_DIRS})
165-
target_link_libraries(tcp_socket_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
136+
target_link_libraries(tcp_socket_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
166137
gtest_add_tests(TARGET tcp_socket_tests
167138
)
168139

169140
add_executable(stream_tests test_stream.cpp)
170-
target_include_directories(stream_tests PRIVATE ${GTEST_INCLUDE_DIRS})
171-
target_link_libraries(stream_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
141+
target_link_libraries(stream_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
172142
gtest_add_tests(TARGET stream_tests
173143
)
174144

175145
add_executable(producer_tests test_producer.cpp)
176-
target_include_directories(producer_tests PRIVATE ${GTEST_INCLUDE_DIRS})
177-
target_link_libraries(producer_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
146+
target_link_libraries(producer_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
178147
gtest_add_tests(TARGET producer_tests
179148
)
180149

181150
add_executable(pipeline_tests test_pipeline.cpp)
182-
target_include_directories(pipeline_tests PRIVATE ${GTEST_INCLUDE_DIRS})
183-
target_link_libraries(pipeline_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
151+
target_link_libraries(pipeline_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
184152
gtest_add_tests(TARGET pipeline_tests
185153
)
186154

187155
add_executable(script_command_interface_tests test_script_command_interface.cpp)
188-
target_include_directories(script_command_interface_tests PRIVATE ${GTEST_INCLUDE_DIRS})
189-
target_link_libraries(script_command_interface_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
156+
target_link_libraries(script_command_interface_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
190157
gtest_add_tests(TARGET script_command_interface_tests
191158
)
192159

193160
add_executable(robot_receive_timeout_tests test_robot_receive_timeout.cpp)
194-
target_include_directories(robot_receive_timeout_tests PRIVATE ${GTEST_INCLUDE_DIRS})
195-
target_link_libraries(robot_receive_timeout_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
161+
target_link_libraries(robot_receive_timeout_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
196162
gtest_add_tests(TARGET robot_receive_timeout_tests
197163
)
198164

199165
add_executable(control_mode_tests test_control_mode.cpp)
200-
target_include_directories(control_mode_tests PRIVATE ${GTEST_INCLUDE_DIRS})
201-
target_link_libraries(control_mode_tests PRIVATE ur_client_library::urcl ${GTEST_LIBRARIES})
166+
target_link_libraries(control_mode_tests PRIVATE ur_client_library::urcl GTest::gtest_main)
202167
gtest_add_tests(TARGET control_mode_tests
203168
)

0 commit comments

Comments
 (0)