This package contains cmake modules to provide a thin catkinization layer around the rosjava and android gradle builds. The main purpose of this is to provide the glue between multiple rosjava/android gradle repos so they can be built in sequence and in one-shot. It also has a few convenience command line tools.
A Catkin Rosjava/Android Repo
Using these tools, the natural rosjava/android repo will be a multi-project gradle repository with a root gradle project controlling the build of several projects underneath.
Rather than trying to install a catkin package.xml for each sub-project, we just define the entire repository as a single catkin package (much, much simpler) and call out to gradle underneath for compiling while catkin handles the dependency sequencing. This seems to be the most optimal way to avoid alot of repetitive constructs.
At a very minimum, for these scripts, you will need:
> sudo apt-get install ros-hydro-rosjava-build-tools ros-hydro-rosjava-bootstrap
Command Line Tools
These don't actually add projects with code, they just set up the skeleton for a multi-project repo. Typically this will be the init for your github repo.
catkin_create_rosjava_project : application rosjava project that creates executables.
catkin_create_rosjava_library_project : library rosjava project that deploys a .jar archive.
catkin_create_rosjava_msg_project : do code generation on existing msg packages.
catkin_create_android_project : standard android 'app'
catkin_create_android_library_project : android library project that deploys a .aar archive.
Refer to the rosjava_build_tools/Tutorials/hydro for example usage.
This provides a simple catkin api that relays jobs out to gradle. This means your CMakeLists.txt for any package has a java specific format. e.g. for java:
cmake_minimum_required(VERSION 2.8.3) project(rosjava_core) find_package(catkin REQUIRED rosjava_build_tools) # replace argument with another gradle target of your choice catkin_rosjava_setup(publishMavenJavaPublicationToMavenRepository) catkin_package()
and for android:
cmake_minimum_required(VERSION 2.8.3) project(android_extras) find_package(catkin REQUIRED rosjava_build_tools) catkin_android_setup(assembleRelease uploadArchives) catkin_package()
If you want to clean all your gradle packages, then simply:
> cd build > make clean-gradle