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_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 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_COMMAND_PREFIX
- prepend the given command and its arguments to a dh step. This is intended
for wrapper commands which execute the remainder of their arguments, such
as xvfb-run, which can be used to run tests in a virtual X
server.
- ROS_step_type_COMMAND_PREFIX
- prepend the given command and its arguments to a dh step, 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
COMMAND_PREFIX 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
- {builddir}
- 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
The dh-ros helper and rosbuilder was written by
Timo Röhling for
Debian.