[Documentation] [TitleIndex] [WordIndex

Documentation

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 packages 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.

Installation

> sudo apt-get install ros-hydro-rosjava-tools

Command Line Tools

catkin_create_android_repo

Creates a gradle multi-project repo with the required catkin files.

> catkin_create_android_repo turtlebot_android android_apps android_extras rosjava_core

catkin_create_android_(library)_pkg

Call underneath a repo - this fills in an empty sub-project with the pre-requisite gradle and android configuration files.

> catkin_create_android_library_pkg -s 17 -p com.github.ros_java.android_apps.application_management application_management

Be sure to choose a (unique package name and set an appropriate sdk version for your app.

CMakeLists.txt

For a rosjava catkin package which will build the gradle targets install and installApp:

cmake_minimum_required(VERSION 2.8.3)
project(rosjava_core)
find_package(catkin REQUIRED rosjava_tools)
catkin_rosjava_setup()
catkin_package()

For a repository of android packages:

cmake_minimum_required(VERSION 2.8.3)
project(android_extras)
find_package(catkin REQUIRED rosjava_tools)
catkin_android_setup(assembleRelease publishToMavenLocal)
catkin_package()

Make sure you publish to maven local if you have any libraries (these are deposited as .aar's which are android's equivalent of jar's). If you have only applications you don't need to provide the publishToMavenLocal target.

If you want to clean all your repos, then simply:

> cd build
> make clean-gradle

2024-11-16 17:43