rosbuilder - execute appropriate build commands for ROS
packages
rosbuilder is invoked internally by the ros
buildsystem. You can use this in your debian/rules with dh
--buildsystem=ros.
The rosbuilder behavior can be customized by setting
various environment variables in debian/rules.
Remember to prefix the declarations with the export
keyword, or the variables will not propagate to the environment
properly.
- ROS_DESTDIR
- override the location for the staged installation
- ROS_INSTALL_PREFIX
- override the install prefix
- ROS_IGNORE_TEST_RESULTS
- do not fail the build if the dh_auto_test step fails for the listed
packages. If set to the special value 1, test failures for all
packages will be ignored.
- ROS_PYTHON_VERSION
- set to 2 or 3 to force the respective Python version for the
build
- ROS_SKIP_PACKAGES
- do not build the listed packages at all
- ROS_SKIP_TESTS
- skip tests for the listed packages. If set to the special value 1,
all package tests will be skipped. This is equivalent to passing
nocheck via DEB_BUILD_OPTIONS.
For the clean, configure, build, test,
and install steps, there are hooks to run additional commands before
and after each step. Also, either additional arguments can be passed to the
dh_auto_* helpers or the whole step can be replaced by a different
command.
- ROS_step_ARGS
- pass additional arguments to a dh step. The placeholder step stands
for one of CONFIGURE, BUILD, TEST, INSTALL, or CLEAN, all in
upper-case.
- ROS_step_type_ARGS
- pass additional arguments to a dh step, but only for packages with a
particular build type. Known build types are AMENT_CMAKE, AMENT_PYTHON,
CATKIN, and CMAKE.
- ROS_step_WRAPPER
- wrap a dh step with another command, i.e., prepend the command line with
the given command and its arguments. The wrapper command is expected to
execute the remainder of its arguments. An example for a wrapper is
xvfb-run, which can be used to run tests in a virtual X
server.
- ROS_step_type_WRAPPER
- wrap a dh step with another command, but only for a particular build
type.
- ROS_EXECUTE_BEFORE_step
- execute additional commands before a dh step. The value is subject to some
variable expansion (see below) and treated as shell command line.
- ROS_EXECUTE_AFTER_step
- execute additional commands before a dh step
- ROS_EXECUTE_BEFORE_step_type
- execute additional commands before a dh step for packages of build type
type.
- ROS_EXECUTE_AFTER_step_type
- execute additional commands after a dh step for packages of build type
type.
- ROS_EXECUTE_CUSTOM_step
- replace the dh step by a custom shell command line. This will replace the
entire command line, so any COMMAND_PREFIX will be ignored as
well.
- ROS_EXECUTE_CUSTOM_step_type
- replace the dh step for packages of build type type by a custom
shell command line. This will replace the entire command line, so any
WRAPPER will be ignored as well.
rosbuilder supports a few placeholders in custom command
lines. All values will be quoted as required to prevent spurious shell
expansions.
- {dir}
- the source directory of the currently processed ROS package
- {build_dir}
- the temporary build directory of the currently processed ROS package
- {destdir}
- the location for the staged installation
- {package}
- the name of the currently processed ROS package
- {package!id}
- the sanitized package name, suitable for use as variable identifier
- {version}
- the version number of the currently procssed ROS package
- {build_type}
- the build type of the currently processed ROS package
- {prefix}
- the install prefix
The dh-ros helper and rosbuilder was written by
Timo Röhling for
Debian.