11cmake_minimum_required (VERSION 3.14.0)
22
3- set (CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR} /../CMakeModules/" ${CMAKE_MODULE_PATH} )
43
54project (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
2720if (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
6150add_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)
6452gtest_add_tests(TARGET primary_parser_tests
6553)
6654
6755add_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)
7057gtest_add_tests(TARGET rtde_data_package_tests
7158)
7259
7360add_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)
7662gtest_add_tests(TARGET rtde_parser_tests
7763)
7864
7965add_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)
8267gtest_add_tests(TARGET tcp_server_tests
8368)
8469
8570add_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)
8872gtest_add_tests(TARGET script_sender_tests
8973)
9074
9175add_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)
9477gtest_add_tests(TARGET reverse_interface_tests
9578)
9679
9780add_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)
10082gtest_add_tests(TARGET trajectory_point_interface_tests
10183)
10284
10385add_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)
10687gtest_add_tests(TARGET rtde_control_package_pause_tests
10788)
10889
10990add_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)
11292gtest_add_tests(TARGET rtde_control_package_start_tests
11393)
11494
11595add_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)
11897gtest_add_tests(TARGET rtde_control_package_setup_outputs_tests
11998)
12099
121100add_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)
124102gtest_add_tests(TARGET rtde_control_package_setup_inputs_tests
125103)
126104
127105add_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)
130107gtest_add_tests(TARGET rtde_get_urcontrol_version_tests
131108)
132109
133110add_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)
136112gtest_add_tests(TARGET rtde_request_protocol_version_tests
137113)
138114
139115add_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)
142117gtest_add_tests(TARGET rtde_writer_tests
143118)
144119
145120add_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)
148122gtest_add_tests(TARGET version_information_tests
149123)
150124
151125add_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)
154127gtest_add_tests(TARGET bin_parser_tests
155128)
156129
157130add_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)
160132gtest_add_tests(TARGET package_serializer_tests
161133)
162134
163135add_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)
166137gtest_add_tests(TARGET tcp_socket_tests
167138)
168139
169140add_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)
172142gtest_add_tests(TARGET stream_tests
173143)
174144
175145add_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)
178147gtest_add_tests(TARGET producer_tests
179148)
180149
181150add_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)
184152gtest_add_tests(TARGET pipeline_tests
185153)
186154
187155add_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)
190157gtest_add_tests(TARGET script_command_interface_tests
191158)
192159
193160add_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)
196162gtest_add_tests(TARGET robot_receive_timeout_tests
197163)
198164
199165add_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)
202167gtest_add_tests(TARGET control_mode_tests
203168)
0 commit comments