Version 2 (modified by sylvain.joyeux, 8 years ago) (diff)


This page lists guidelines on packages and package build systems. These are not hard requirements (packages that do not follow these guidelines could be integrated in Rock), but are meant to be followed when possible.

Package Directories

  • src/: Contains all header (*.h/*.hpp) and source files
  • build/:The target directory for the build process, temporary content. This directory is automatically created by the build system(s)
  • resources/: General resources such as images that are needed by the program
  • configuration/: Configuration files needed to use the library / run associated programs
  • external/: When including software that needs a non standard installation process, or one that can be easily embedded include the external software directly here
  • doxyfile configuration file
  • doc/: should contain additional documentation

Build System Behaviour

  • the build system should support separating the build from the source (i.e. building in a build/ subdirectory)
  • the package should have a "make install" target which installs the relevant binaries and headers in a specified prefix (CMAKE_INSTALL_PREFIX when using CMake). The installation should follow the Linux directory standard.
  • headers should be installed in a subdirectory of include/ named as the package (for instance, the slam/envire package should install its includes in include/envire/). As a special exception, packages that have a single include file can install it as include/<package_name>.hpp