The current way to specify a dependency needed for multiple build stages is with the separate tags <build_depend>, <exec_depend>, etc.
It seems more natural to have a way of way of specifying a package for multiple purposes in one declaration. Currently <depend> does this but only for a special case (<depend> is equivalent to <build_depend>, <build_export>, <exec> all at once).
I propose a for attribute on the depends tag which is a whitespace-separated list of one or more functional purposes, chosen from “build”, “build_export”, “buildtool”, “buildtool_export”, “exec”, “doc”, “test” (and possibly arbitrarily).
The default value of this attribute would be “build build_export exec” to preserve the semantics of existing depend tags. Thus the existing <build_depend> would become a synonym of <depend for=‘build’>.
This could be used with tools like rosdep as a natural way of filtering dependencies (e.g. rosdep install --from_path src --for build test doc).
The current way to specify a dependency needed for multiple build stages is with the separate tags
<build_depend>,<exec_depend>, etc.It seems more natural to have a way of way of specifying a package for multiple purposes in one declaration. Currently
<depend>does this but only for a special case (<depend>is equivalent to<build_depend>,<build_export>,<exec>all at once).I propose a
forattribute on the depends tag which is a whitespace-separated list of one or more functional purposes, chosen from “build”, “build_export”, “buildtool”, “buildtool_export”, “exec”, “doc”, “test” (and possibly arbitrarily).The default value of this attribute would be
“build build_export exec”to preserve the semantics of existingdependtags. Thus the existing<build_depend>would become a synonym of<depend for=‘build’>.This could be used with tools like
rosdepas a natural way of filtering dependencies (e.g.rosdep install --from_path src --for build test doc).