Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Need an option to only run catkin_prerun_tool to generate devel space without building anything #556

Closed
Vuwij opened this issue Jul 4, 2019 · 4 comments

Comments

@Vuwij
Copy link

Vuwij commented Jul 4, 2019

System Info

  • Operating System: Linux common-Oryx-Pro 4.15.0-54-generic #58~16.04.1-Ubuntu SMP Mon Jun 24 13:21:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
  • Python Version: Python 2.7.12
  • Version of catkin_tools: `catkin_tools 0.4.5 (C) 2014-2019 Open Source Robotics Foundation*
  • ROS Distro: kinetic

Build / Run Issue

I need an option to run the catkin_build_prerun tool only first without building any packages so I can source all the packages without building this. The reason for this is so that I can use rosdep install -i $(rospack depends package) so I can recursively install all the dependencies for a single package rather than having to install all the package dependencies for an entire workspace.

This is useful if I want to have multiple robots with multiple high level packages and I don't want to install all system dependencies for all robots in the same workspace.

What I need is some option like catkin build --prerun-only so it can generate the files that allow me to add all files into the $ROS_PACKAGE_PATH
However rospack requires all the packages to be added to $ROS_PACKAGE_PATH and because of this I need to source all the packages in the workspace before. I've also tried catkin list --depends, but this only gives me package dependencies that are already installed rather than resolving from rosdep to get the list of system dependencies

@gavanderhoorn
Copy link
Contributor

This is not an answer/resolution, but your post reminded me of How to rosdep install dependencies of one package? on ROS Answers.

@mikepurvis
Copy link
Member

mikepurvis commented Jul 4, 2019

This request sounds a little bit like #303, which also has to do with sourcing multiple package installspaces.

Note as well that if you mostly just care about inspecting the dependency tree, catkin_pkg, rosdistro, rospkg, and friends all have very nice Python APIs that you can use to get at and manipulate this kind of info. Rather than generating an unbuilt develspace to run rosdep against, it might be easier to just write a small external program which examines the src space and generates a list of system deps. See as a starting point: https://github.com/mikepurvis/ros-bundling/blob/master/rosdep_lite/deps_from_workspace.py

@Vuwij
Copy link
Author

Vuwij commented Jul 5, 2019

http://answers.ros.org/question/327733/installing-all-ros-dependencies-of-a-single-package-rather-than-the-entire-workspace/

Here is my current problem. Do you know if there is any other way to do it, otherwise I can create a python api i guess

@gavanderhoorn
Copy link
Contributor

@Vuwij: did the Q&A I linked not already address this? Afaik it should do exactly what you ask for: consider all packages in a workspace for dependency resolution, but without installing dependencies for all those packages.

@Vuwij Vuwij closed this as completed Jul 11, 2019
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants