diff --git a/CMakeLists.txt b/CMakeLists.txt index d6557330f0c525d34bd7e472a848e2d434fa6c0c..47f5fe4603873dd8b3521836e2015b2708a7e35b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,16 @@ project(lrs_rviz_melodic) ## Find catkin macros and libraries ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) ## is used, also find other catkin packages -find_package(catkin REQUIRED) +find_package(catkin REQUIRED COMPONENTS + rviz + roscpp + ) + +set(CMAKE_AUTOMOC ON) +set(CMAKE_INCLUDE_CURRENT_DIR TRUE) + +find_package(Qt5Core REQUIRED) +find_package(Qt5Gui REQUIRED) ## System dependencies are found with CMake's conventions # find_package(Boost REQUIRED COMPONENTS system) @@ -113,7 +122,9 @@ catkin_package( ## Your package locations should be listed before other locations include_directories( # include -# ${catkin_INCLUDE_DIRS} + ${catkin_INCLUDE_DIRS} + /usr/include/OGRE + /opt/ros/melodic/include/rviz ) ## Declare a C++ library @@ -121,6 +132,12 @@ include_directories( # src/${PROJECT_NAME}/lrs_rviz_melodic.cpp # ) +## Declare a C++ library +add_library(lrs_rviz_plugin + src/image_visual.cc + src/image_display.cc +) + ## Add cmake target dependencies of the library ## as an example, code may need to be generated before libraries ## either from message generation or dynamic reconfigure @@ -146,6 +163,13 @@ include_directories( # ${catkin_LIBRARIES} # ) +target_link_libraries(lrs_rviz_plugin + ${catkin_LIBRARIES} + ${QT_LIBRARIES} + Qt5::Gui + Qt5::Core +) + ############# ## Install ## ############# @@ -167,6 +191,12 @@ include_directories( # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} # ) +install(TARGETS lrs_rviz_plugin + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +) + ## Mark cpp header files for installation # install(DIRECTORY include/${PROJECT_NAME}/ # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} @@ -181,6 +211,11 @@ include_directories( # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} # ) +install(FILES + plugin_description.xml + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} +) + ############# ## Testing ## ############# diff --git a/package.xml b/package.xml index c60e9e04ab342bb2d1131dd9a50c842add74aa7e..7326136614bd90dc9ad7babf043ee0bfc8bbd71a 100644 --- a/package.xml +++ b/package.xml @@ -49,11 +49,13 @@ <!-- Use doc_depend for packages you need only for building documentation: --> <!-- <doc_depend>doxygen</doc_depend> --> <buildtool_depend>catkin</buildtool_depend> + <depend>roscpp</depend> + <depend>rviz</depend> <!-- The export tag contains other, unspecified, tags --> <export> <!-- Other tools can request additional information be placed here --> - + <rviz plugin="${prefix}/plugin_description.xml"/> </export> </package> diff --git a/plugin_description.xml b/plugin_description.xml new file mode 100644 index 0000000000000000000000000000000000000000..85d68053e51b01b1283cdbe715b0ef795000dfc1 --- /dev/null +++ b/plugin_description.xml @@ -0,0 +1,7 @@ +<library path="lib/liblrs_rviz_plugin"> + <class name="lrs_rviz/Image" type="lrs_rviz::ImageDisplay" base_class_type="rviz::Display"> + <description> + Displays an image on the ground plane. + </description> + </class> +</library>