ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Catkin-izing a python library

asked 2016-09-21 13:05:00 -0600

Femer gravatar image

Hi everybody,

I need a "catkin-ized" version of a python library and I have some problems in doing it. I use catkin tools.

The library I'm interested in is libsbp (python/sbp subfolder for my specific case). I'm aware there's already a catkinezed version of this repo, which is libsbp-release, but I have some problems with the "install" directive in the CMakeLists.txt.

In fact, if I clone libsbp-release in my catkin work-space, checkout the specific release I need (release/indigo/libsbp/1.1.1-5) and compile it then it tries to install the python files in my catkin_ws/install folder (this required me to run "catkin config --install" in my work-space to enable the installation.) The "catkin configure --install" causes each other package in the work-space to be installed to the install folder of catkin_ws. This behavior causes lots of errors when I try to compile other packages that I didn't create and I don't want to modify. So, finally, my questions are:

1 Can I install just the catkin-ized version of that library and not the other packages in the same work-space? If so, I was not able to find out how I can do it using catkin tools.

2 If this first option is not possible, how can I use the files in the python/sbp of the library? Should I create a new catkin package and simply use the "target_include_directories" in my CMakeLists.txt?

Thanks for your help,


edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2016-09-21 14:48:09 -0600

gvdhoorn gravatar image

updated 2016-09-21 14:53:36 -0600

Not really an answer, but: libsbp-release is a Bloom release repository, which is not intended to be build in a normal Catkin workspace, but to be used by the ROS buildfarm to build Debian/Fedora/Whatever packages from.

That said, it looks like you could reuse the package.xml and CMakeLists.txt from the skeleton packages included in that repository in combination with a source checkout of swift-nav/libsbp.

I don't get why you have problems with the install(..) directives in the CMakeLists.txt though: if you don't run a catkin_make install or configure catkin_tools to install things, that part of the CMakeLists.txt should be ignored.

I'm not sure about the interaction with the Makefile in swift-nav/libsbp though, so perhaps that could be doing strange things in your catkin workspace.

edit flag offensive delete link more


Hi, thanks for your answer! Unfortunately I didn't manage to use it correctly, probably I'm still missing some "pieces" ... Anyway, at the moment I'm using the upstream repository and just add it's path to PYTHONPATH in ROS. Thanks again for your explanation about the release purpose

Femer gravatar image Femer  ( 2016-09-26 03:55:35 -0600 )edit

Question Tools

1 follower


Asked: 2016-09-21 13:05:00 -0600

Seen: 196 times

Last updated: Sep 21 '16