rosjava/rosjava_core — pull request #160 by stonier (2013-05-22 14:05:05+00:00)
Title: Catkin macros for rosjava repos

Just a quick demo of how I'd go about catkinizing rosjava repos. For a test (takes about 2 mins), follow the instructions in the [Readme](https://github.com/ros-java/rosjava_tools/blob/hydro-devel/README.md). Some points:

* Lets you sequence builds across repos via package.xml build_depend tags and cmake add_dependencies.
* Puts the build step in the cmake 'make' invocation via dummy targets.
* Also adds a global gradle clean target so you can clean multiple gradle packages across repos at once.

To play the devil's advocate - we were thinking about a super gradle project which would effectively do what catkin does with cmake across repos. Some problems with this approach that I can see:

* You can't build rosjava_core without a `setup.bash` invocation somewhere (rosjava_messages). With catkin, that source workspace setup.bash is only created after you invoke catkin. So right now, we need to call catkin anyway.
* Calling catkin, implies we need `package.xml` as well.
* We'll probably also need `package.xml` for bloom at a later point.
* Even if we called out on a super gradle at the root of the source workspace, then it would fail to automatically build other non java (mostly thinking msg packages) packages for you. You'd have to remember and do it by hand first.

So at this point, doing it with a single catkin macro seems like alot less required infrastructure to make things work...for rosjava packages at least.

Will think about android packages once I've looked at the google android gradle plugin.