Robotics StackExchange | Archived questions

How do I specify which packages are needed to run code in a package or build packages?

e.g.

<builddepend> industrialrobotclient </builddepend> <builddepend> simplemessage </build_depend>

<rundepend> industrialrobotclient</rundepend>

why is "simplemessage" used to build this package and there not simplemessage in the <run_depend> tag?

Asked by Handwerker on 2015-09-01 05:36:38 UTC

Comments

Can you please add which package this is? It is possible for things to be build_depend only, but that is only in certain cases.

One other possibility is that the author relied on industrial_robot_client transitively providing the simple_message run dependency.

Asked by gvdhoorn on 2015-09-01 07:01:52 UTC

this is abb_driver package. industrial_robot_client and simple_message are part of ROS-Industrial

Asked by Handwerker on 2015-09-01 10:26:43 UTC

Hm. Could be that I forgot to add simple_message as a run_depends. But as I wrote: industrial_robot_client will transitively pull in the simple_message dependency. Whether that is a nice thing to do is something else.

Asked by gvdhoorn on 2015-09-01 10:44:27 UTC

what is the difference between "run" and "build" in ROS.

Asked by Handwerker on 2015-09-01 10:52:13 UTC

Briefly: run dependencies are needed to be able to run a specific program, while build dependencies are needed to be able to build it (compiling is one step in building a program).

See also REP-127 - build_depend.

Asked by gvdhoorn on 2015-09-01 11:05:59 UTC

Answers

I don't know the specific package, but given the maintainer has set things correctly:

Simple answer: Because it's not required to run the package, only for building. Common examples are things like libXXX-dev vs. libXXX for build/run depends.

Asked by dornhege on 2015-09-01 05:53:27 UTC

Comments

thanks , I find I don't understand the difference between "run" and "build" .

Asked by Handwerker on 2015-09-01 10:54:24 UTC