[ros-users] catkin_make convenience improvements

Dirk Thomas dthomas at willowgarage.com
Wed Jan 30 23:27:21 UTC 2013

On 30.01.2013 14:29, Jonathan Bohren wrote:
> On Wed, Jan 30, 2013 at 5:26 PM, Dirk Thomas <dthomas at willowgarage.com <mailto:dthomas at willowgarage.com>> wrote:
>     As I wrote: that is an argument which we do NOT support for the mentioned reasons.
> What about the others, then?

For --install it is the same thing: there is already a standard CMake arguments which performs that action.

> `catkin init`:
>      mkdir -p .catkin/build .catkin/install .catkin/devel
>      catkin_make  --build .catkin/build --src . --install .catkin/install
> `catkin cmake [cmake_args]`:
>      cd /path/to/ws/.catkin/build && cmake /path/to/ws $cmake_args
> `catkin make [make_args]`:
>      cd /path/to/ws/.catkin/build && make $make_args
> `catkin ninja [ninja_args]`:
>      cd /path/to/ws/.catkin/build && ninja $ninja_args
> `catkin source`:
>      source /path/to/ws/.catkin/devel/setup.sh

What you sketch here is very similar to what catkin_make currently does.
The only two differences here are:

1) the build/devel/install folders are not in a hidden subdirectory and this has been discussed and decided on in an REP.
There is no real need to change that layout except personal preference and the fact that hiding them in a ".catkin" folder is nothing I would consider a good design decision.

2) Sourcing the environment directly after a build is intentionally not done by catkin_make. The reason is that this might lead to issues in consecutive builds.
Coupling the build and environment setting into a single command is also not a good idea. You only need to source the env once (not everytime you rebuild, as long as you dont make change like adding 
env hooks).

- Dirk

More information about the ros-users mailing list