ros / meta-ros

OpenEmbedded Layers for ROS 1 and ROS 2
MIT License
382 stars 251 forks source link

Could not find RenderSystem_GL plugin in configuring rviz-rendering. #1162

Closed bchoineubility closed 4 months ago

bchoineubility commented 4 months ago

Hi Rob,

I have an issue in building rviz-rendering as following:

| -- rviz_ogre_vendor::RenderSystem_GL for IMPORTED_LOCATION_RELEASE: _render_system_gl_static_library_abs-NOTFOUND
| -- rviz_ogre_vendor::RenderSystem_GL for IMPORTED_LOCATION_DEBUG: _render_system_gl_static_library_abs-NOTFOUND
| -- Found rviz_assimp_vendor: 11.2.8 (/home/bchoi/nvidia-yocto-bsp/bchoi-build/tmp/work/armv8a-oe4t-linux/rviz-rendering/11.2.8-1-r0/recipe-sysroot/usr/share/rviz_assimp_vendor/cmake)
| -- library: libassimp.so.5
| -- Found ament_index_cpp: 1.4.0 (/home/bchoi/nvidia-yocto-bsp/bchoi-build/tmp/work/armv8a-oe4t-linux/rviz-rendering/11.2.8-1-r0/recipe-sysroot/usr/share/ament_index_cpp/cmake)
| -- Found eigen3_cmake_module: 0.1.1 (/home/bchoi/nvidia-yocto-bsp/bchoi-build/tmp/work/armv8a-oe4t-linux/rviz-rendering/11.2.8-1-r0/recipe-sysroot-native/usr/share/eigen3_cmake_module/cmake)
| -- Found Eigen3: TRUE (found version "3.4.0")
| -- Found resource_retriever: 3.1.1 (/home/bchoi/nvidia-yocto-bsp/bchoi-build/tmp/work/armv8a-oe4t-linux/rviz-rendering/11.2.8-1-r0/recipe-sysroot/usr/share/resource_retriever/cmake)
| -- library: /home/bchoi/nvidia-yocto-bsp/bchoi-build/tmp/work/armv8a-oe4t-linux/rviz-rendering/11.2.8-1-r0/recipe-sysroot/usr/lib/libcurl.so
| -- Configuring done
| CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
| Please set them or make sure they are set and tested correctly in the CMake files:
| library_abs
|     linked by target "rviz_rendering" in directory /home/bchoi/nvidia-yocto-bsp/bchoi-build/tmp/work/armv8a-oe4t-linux/rviz-rendering/11.2.8-1-r0/git

This issue would relate with rviz_ogre_vendor-extras.cmake which is provided rviz_ogre_vendor.

find_library would not work correctly. The issue would be in the following line in the rviz_ogre_vendor-extras.cmake.

187   if("RenderSystem_GLStatic" STREQUAL ${_lib} OR "RenderSystem_GL" STREQUAL ${_lib})
188     find_library(_render_system_gl_static_library_abs ${_lib}
189       PATHS
190         ${OGRE_LIBRARY_DIRS}
191       NO_DEFAULT_PATH
192       NO_CMAKE_ENVIRONMENT_PATH
193       NO_CMAKE_PATH
194       NO_SYSTEM_ENVIRONMENT_PATH
195       NO_CMAKE_SYSTEM_PATH
196       NO_CMAKE_FIND_ROOT_PATH
197     )
198     find_library(_render_system_gl_static_library_debug_abs ${_lib}_d
199       PATHS
200         ${OGRE_LIBRARY_DIRS}
201       NO_DEFAULT_PATH
202       NO_CMAKE_ENVIRONMENT_PATH
203       NO_CMAKE_PATH
204       NO_SYSTEM_ENVIRONMENT_PATH
205       NO_CMAKE_SYSTEM_PATH
206       NO_CMAKE_FIND_ROOT_PATH
207     )
208     if(NOT _render_system_gl_static_library_debug_abs AND NOT WIN32)
209       # On macOS it seems the _d is not used, so just use the normal library name.
210       set(_render_system_gl_static_library_debug_abs ${_render_system_gl_static_library_abs})
211     endif()
212
213     add_library(rviz_ogre_vendor::RenderSystem_GL UNKNOWN IMPORTED)
214     message(STATUS "rviz_ogre_vendor::RenderSystem_GL for IMPORTED_LOCATION_RELEASE: ${_render_system_gl_static_library_abs}")
215     message(STATUS "rviz_ogre_vendor::RenderSystem_GL for IMPORTED_LOCATION_DEBUG: ${_render_system_gl_static_library_debug_abs}")
216     set_target_properties(rviz_ogre_vendor::RenderSystem_GL
217       PROPERTIES
218         IMPORTED_LOCATION_RELEASE ${_render_system_gl_static_library_abs}
219         IMPORTED_LOCATION_DEBUG ${_render_system_gl_static_library_debug_abs}
220     )

I checked all libraries and plugins are in the correct path, but, cmake do not find them.

Can you please look into this issue?

BR, Mark

robwoolley commented 4 months ago

Hi Mark,

Which Yocto release, ROS 2 distro, and machine/BSP are you using?

If it is Humble+Kirkstone are you using my recent "work-in-progress" PR: https://github.com/ros/meta-ros/pull/1150/commits ?

Rviz-rendering seemed to build fine for me with raspberrypi4-64.

Regards, Rob

bchoineubility commented 4 months ago

Hi Rob,

There was issue finding library for the assimp in rviz_assimp_vendor-extras.cmake.in file on the rviz-assimp-vendor.

https://github.com/ros2/ros2/issues/1222

It affects configuring rviz-rendering in my case.

I attach my patch and if it necessary.

0001-Fixed-issue-finding-assimp-lib-path.patch