C++ Implementation

Supported Operating Systems and Compilers

  • Linux (GCC 4.x)
  • MacOS (GCC 4.x, LLVM/clang 3.1)
  • Windows (MS Visual Studio 9 2008)
  • Windows (MS Visual Studio 10 20??)

Other combinations may be possible but are currently untested.

Dependencies

Required Dependencies

  • Boost, Version 1.38 or newer
  • Boost.UUID
    • Header-only library
    • Included in Boost since version 1.42
    • Headers from this version can be used with all older versions of Boost
  • Google Protocol Buffers
    • Ubuntu GNU/Linux (Lucid) packages (libprotobuf-dev, protobuf-compiler) are ok
  • CMake, Version 2.8 or newer

Optional Dependencies (building without these is possible, but some features will be missing)

  • Spread, Version 4.0 or newer
    • The Ubuntu GNU/Linux (Lucid) package does not work (since it contains the outdated version 3)
  • Doxygen for generation of API documentation
  • Lcov for code coverage analysis
  • cppcheck for static code analysis

Installation of Dependencies on Debian-based Systems

$ sudo apt-get install libprotobuf-dev protobuf-compiler build-essential libboost-dev

Installation of Dependencies on MacOS using Homebrew

For installing RSB and its dependencies from source on Darwin, we recommend to use Homebrew, an easy-to-use package manager for MacOS.

$ brew install cmake boost protobuf

Installation of the Spread Toolkit

Spread, is a powerful transport layer which is natively supported in RSB. To install Spread, source archives are available after registration for download http://www.spread.org/download/spread-src-4.1.0.tar.gz. Installation of Spread is straightforward on MacOS and Linux as it has no external dependencies and comes with a standard configuration script.

Note

In the following sections, prefix specifies the target directory of the installation.

$ tar xzf spread-src-4.1.0.tar.gz
$ cd spread-src-4.1.0
$ ./configure --prefix=$prefix
$ make
$ make install

Installation of RSC, RSBProtocol and RSB

  1. Clone RSB and its immediate dependencies from the git repository

    RSC

    “0.15” branch of https://code.cor-lab.org/git/rsc.git

    RSB Protocol

    “0.15” branch of https://code.cor-lab.org/git/rsb.git.protocol

    RSB C++

    “0.15” branch of https://code.cor-lab.org/git/rsb.git.cpp

    Optionally: RSB C++ Spread plugin (in case you want to use the spread transport)

    “0.15” branch of https://code.cor-lab.org/git/rsb.git.spread-cpp

  2. Build and install the C++ implementation of RSB and its dependencies in the order given below:

    1. Build and install RSC Library

      $ cd rsc
      $ mkdir -p build && cd build
      $ cmake -DCMAKE_INSTALL_PREFIX=PREFIX ..
      $ make install
      
    2. Install RSB Protocol Definitions

      $ cd rsb.git.protocol
      $ mkdir -p build && cd build
      $ cmake -DCMAKE_INSTALL_PREFIX=PREFIX ..
      $ make install
      

      Note

      These protocol definitions are shared across programming languages.

    3. Build and install the C++ implementation of RSB

      $ cd rsb.git.cpp
      $ mkdir -p build && cd build
      $ cmake -DCMAKE_INSTALL_PREFIX=$prefix ..
      $ make install
      
    4. Optionally, build and install the C++ Spread plugin of RSB

      $ cd rsb.git.spread-cpp
      $ mkdir -p build && cd build
      $ cmake -DCMAKE_INSTALL_PREFIX=$prefix ..
      $ make install
      

    Important

    The commands above only work, if all projects are installed into a common prefix (i.e. PREFIX). Otherwise, locations of required dependencies have to be specified explicitly. For example:

    $ cmake -DCMAKE_INSTALL_PREFIX=/opt/rsb                          \
            -DRSC_DIR=/opt/rsc/share/rsc                             \
            -DRSBProtocol_DIR=/opt/rsb-prototcol/share/rsb-protocol \
            ..