11cmake_minimum_required (VERSION 3.20)
22project (rviz_visual_tools)
33
4- # Default to C++14
4+ # Default to C++17
55if (NOT CMAKE_CXX_STANDARD)
6- set (CMAKE_CXX_STANDARD 14 )
6+ set (CMAKE_CXX_STANDARD 17 )
77endif ()
88
99if (CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
@@ -40,7 +40,21 @@ find_package(rviz_common REQUIRED)
4040find_package (rviz_rendering REQUIRED)
4141find_package (rviz_default_plugins REQUIRED)
4242
43- find_package (Qt5 REQUIRED COMPONENTS Widgets)
43+
44+ find_package (QT NAMES Qt6 Qt5 COMPONENTS Test Widgets)
45+
46+ if (Qt${QT_VERSION_MAJOR} STREQUAL "6" )
47+ find_package (Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Test Widgets Core5Compat)
48+ if (${QT_VERSION} VERSION_LESS 5.15.0)
49+ function (qt_wrap_cpp out)
50+ qt5_wrap_cpp(_sources ${ARGN} )
51+ set ("${out} " ${_sources} PARENT_SCOPE)
52+ endfunction ()
53+ endif ()
54+ elseif ()#Qt5
55+ find_package (Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Test Widgets)
56+ endif ()
57+
4458
4559## Qt5 boilerplate options from http://doc.qt.io/qt-5/cmake-manual.html
4660set (CMAKE_INCLUDE_CURRENT_DIR ON )
@@ -77,14 +91,21 @@ set(HEADER_FILES
7791 )
7892
7993add_library (${PROJECT_NAME} _gui SHARED ${SOURCE_FILES} ${HEADER_FILES} )
80- ament_target_dependencies(${PROJECT_NAME} _gui PUBLIC
81- rclcpp
82- rviz_common
83- rviz_rendering
84- rviz_default_plugins
85- rviz_ogre_vendor
94+ target_link_libraries (${PROJECT_NAME} _gui PUBLIC
95+ rclcpp::rclcpp
96+ rviz_common::rviz_common
97+ rviz_rendering::rviz_rendering
98+ rviz_default_plugins::rviz_default_plugins
99+ rviz_ogre_vendor::OgreMain
100+ Qt5::Widgets
86101)
87- target_link_libraries (${PROJECT_NAME} _gui PUBLIC Qt5::Widgets)
102+ if (Qt${QT_VERSION_MAJOR} STREQUAL "6" )
103+ target_link_libraries (${PROJECT_NAME} _gui PUBLIC Qt${QT_VERSION_MAJOR} ::Widgets Qt${QT_VERSION_MAJOR} ::Core5Compat)
104+ elseif ()
105+ target_link_libraries (${PROJECT_NAME} _gui PUBLIC Qt${QT_VERSION_MAJOR} ::Widgets )
106+ endif ()
107+
108+
88109
89110# prevent pluginlib from using boost
90111target_compile_definitions (${PROJECT_NAME} _gui PUBLIC "PLUGINLIB__DISABLE_BOOST_FUNCTIONS" )
@@ -98,18 +119,18 @@ add_library(${PROJECT_NAME}_remote_control SHARED
98119# Needed for M_PI on Windows
99120target_compile_definitions (${PROJECT_NAME} _remote_control PRIVATE _USE_MATH_DEFINES)
100121
101- ament_target_dependencies (${PROJECT_NAME} _remote_control
102- rclcpp
103- rclcpp_components
104- visualization_msgs
105- tf2
106- tf2_eigen
107- tf2_geometry_msgs
108- sensor_msgs
109- shape_msgs
110- std_msgs
111- trajectory_msgs
112- eigen_stl_containers
122+ target_link_libraries (${PROJECT_NAME} _remote_control
123+ rclcpp::rclcpp
124+ rclcpp_components:: component
125+ ${visualization_msgs_TARGETS}
126+ tf2::tf2
127+ tf2_eigen::tf2_eigen
128+ ${tf2_geometry_msgs_TARGETS}
129+ ${sensor_msgs_TARGETS}
130+ ${shape_msgs_TARGETS}
131+ ${std_msgs_TARGETS}
132+ ${trajectory_msgs_TARGETS}
133+ eigen_stl_containers::eigen_stl_containers
113134)
114135
115136# Visualization Tools Library
@@ -119,9 +140,16 @@ add_library(${PROJECT_NAME} SHARED
119140)
120141target_compile_definitions (${PROJECT_NAME} PRIVATE _USE_MATH_DEFINES)
121142ament_target_dependencies(${PROJECT_NAME} PUBLIC Eigen3)
122- target_link_libraries (${PROJECT_NAME}
123- ${PROJECT_NAME} _remote_control
124- )
143+
144+ if (Qt${QT_VERSION_MAJOR} STREQUAL "6" )
145+ target_link_libraries (${PROJECT_NAME}
146+ ${PROJECT_NAME} _remote_control
147+ Qt${QT_VERSION_MAJOR} ::Core5Compat
148+ )
149+ elseif ()
150+ target_link_libraries (${PROJECT_NAME} ${PROJECT_NAME} _remote_control)
151+ endif ()
152+
125153ament_target_dependencies(${PROJECT_NAME}
126154 rclcpp
127155 rclcpp_components
@@ -143,15 +171,13 @@ add_library(${PROJECT_NAME}_imarker_simple SHARED
143171target_compile_definitions (${PROJECT_NAME} _imarker_simple PRIVATE _USE_MATH_DEFINES)
144172target_link_libraries (${PROJECT_NAME} _imarker_simple
145173 ${PROJECT_NAME}
146- )
147- ament_target_dependencies(${PROJECT_NAME} _imarker_simple
148- rclcpp
149- interactive_markers
150- geometry_msgs
151- visualization_msgs
152- sensor_msgs
153- eigen_stl_containers
154- Eigen3
174+ rclcpp::rclcpp
175+ interactive_markers::interactive_markers
176+ ${geometry_msgs_TARGETS}
177+ ${visualization_msgs_TARGETS}
178+ ${sensor_msgs_TARGETS}
179+ eigen_stl_containers::eigen_stl_containers
180+ Eigen3::Eigen
155181)
156182
157183# Demo executable
@@ -161,11 +187,9 @@ add_executable(${PROJECT_NAME}_demo
161187target_compile_definitions (${PROJECT_NAME} _demo PRIVATE _USE_MATH_DEFINES)
162188target_link_libraries (${PROJECT_NAME} _demo
163189 ${PROJECT_NAME}
164- )
165- ament_target_dependencies(${PROJECT_NAME} _demo
166- rclcpp
167- geometry_msgs
168- std_msgs
190+ rclcpp::rclcpp
191+ ${geometry_msgs_TARGETS}
192+ ${std_msgs_TARGETS}
169193)
170194
171195# Demo executable
@@ -174,9 +198,7 @@ add_executable(${PROJECT_NAME}_imarker_simple_demo
174198target_compile_definitions (${PROJECT_NAME} _imarker_simple_demo PRIVATE _USE_MATH_DEFINES)
175199target_link_libraries (${PROJECT_NAME} _imarker_simple_demo
176200 ${PROJECT_NAME} _imarker_simple
177- )
178- ament_target_dependencies(${PROJECT_NAME} _imarker_simple_demo
179- rclcpp
201+ rclcpp::rclcpp
180202)
181203
182204#############
@@ -248,11 +270,9 @@ if (BUILD_TESTING)
248270 tests/rvt_test.cpp
249271 TIMEOUT 180)
250272 target_compile_definitions (${PROJECT_NAME} _rvt_test PRIVATE _USE_MATH_DEFINES)
251- ament_target_dependencies(${PROJECT_NAME} _rvt_test
252- rclcpp
253- )
254273 target_link_libraries (${PROJECT_NAME} _rvt_test
255274 ${PROJECT_NAME}
275+ rclcpp::rclcpp
256276 )
257277endif ()
258278
0 commit comments