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
- Google Protocol Buffers
- Ubuntu GNU/Linux (Lucid) packages (
libprotobuf-dev
,protobuf-compiler
) are ok
- Ubuntu GNU/Linux (Lucid) packages (
- 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¶
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
Build and install the C++ implementation of RSB and its dependencies in the order given below:
Build and install RSC Library
$ cd rsc $ mkdir -p build && cd build $ cmake -DCMAKE_INSTALL_PREFIX=
PREFIX
.. $ make installInstall RSB Protocol Definitions
$ cd rsb.git.protocol $ mkdir -p build && cd build $ cmake -DCMAKE_INSTALL_PREFIX=
PREFIX
.. $ make installNote
These protocol definitions are shared across programming languages.
Build and install the C++ implementation of RSB
$ cd rsb.git.cpp $ mkdir -p build && cd build $ cmake -DCMAKE_INSTALL_PREFIX=$prefix .. $ make install
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 \ ..