Hello,
I am building a ROS package (well actually I am building components for RTT_ROS) and these components depend on external code. This external code is not 3rd party code but code which is maintained outside of catkin_ws. The reason for this is that in my case ROS is only a communication tool part of a larger project.
That is my folders organization is something like:
devRoot
- catkin_ws
src
my_ROS_RTT_package
my_ROS_RTT_component1
my_ROS_RTT_component2
...
- Core (math-related code)
- System (platform-related code)
- Renderer (3D rendering code)
- App (my app which is a robot supervisor using ROS for communication)
My ROS_RTT components actually use the Core and System projects so my components are defined in the package's CMakeList.txt as
orocos_component(MecanumIK
src/MecanumIK.h
src/MecanumIK.cpp)
target_link_libraries(MecanumIK
${catkin_LIBRARIES}
${OROCOS-RTT_RTT-MARSHALLING_LIBRARY}
Core)
Where you see Core appearing in target_link_library for my component.
This all works fine except that when I change some code in Core and call catkin_make, the Core library is not recompiled automatically and I need to recompile it by hand, which is a pain.
UPDATE: Note that our system has a lot of code compiled outside the frame of catkin/ros (this is the bulk of our code actually). Though we rely on ROS for communication. And it turns out our ROS packages (i.e. RTT components among other ROS-related code) depend on Core and System code, which are projects defined outside of the catkin workspace and used throughout our whole codebase (within the ROS framework but also code outside ROS as in projects Renderer or App shown in the folders hierarchy).
I have read this and this, but it did not help much.
Any idea of what I am doing wrong?
Thanks,
Antoine.
Originally posted by arennuit on ROS Answers with karma: 955 on 2016-03-18
Post score: 2