Build RL on MinGW-w64
Prerequisites
In order to compile RL and the dependencies on MinGW-w64 under MSYS2, you first need to install MSYS2 by using their Windows installer. Afterwards, update the package database and system packages via the following command.
pacman -Syu
You then need to install a compiler (e.g., the GNU Compiler Collection) and the cross-platform build system CMake ≥ 2.8.11. It is also recommended to use the Ninja build system. Select an environment and use the corresponding prefix when installing packages, e.g., mingw-w64-ucrt-x86_64-
for 64-bit builds with UCRT.
pacman -S mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-ninja
A number of third-party libraries is required to build all components. It is recommended to get these dependencies from binary packages included in the distribution. In order to install them via the package manager, run the following command in a terminal.
pacman -S mingw-w64-ucrt-x86_64-boost mingw-w64-ucrt-x86_64-bullet mingw-w64-ucrt-x86_64-coin mingw-w64-ucrt-x86_64-eigen3 mingw-w64-ucrt-x86_64-libxml2 mingw-w64-ucrt-x86_64-libxslt mingw-w64-ucrt-x86_64-nlopt mingw-w64-ucrt-x86_64-ode mingw-w64-ucrt-x86_64-pqp mingw-w64-ucrt-x86_64-qt5-base mingw-w64-ucrt-x86_64-qt5-svg mingw-w64-ucrt-x86_64-solid3 mingw-w64-ucrt-x86_64-soqt
In order to generate the API documentation, you need to install the following software packages as well.
pacman -S mingw-w64-ucrt-x86_64-doxygen mingw-w64-ucrt-x86_64-graphviz
Building the Robotics Library
Download the source code and additional examples and extract the archives. Open a command line prompt matching your environment via the start menu, e.g., MSYS2 UCRT64
. Change into the directory of the extracted source.
tar -xvzf rl-0.7.0.tar.gz
tar -xvzf rl-0.7.0-examples.tar.gz
cd rl-0.7.0
Create a build directory.
mkdir build
cd build
Build and install the library by executing the following commands.
cmake -G Ninja -D CMAKE_BUILD_TYPE=Release ..
ninja
ninja install
Additionally, the following commands can be used to build the API documentation on demand and to run tests included in the project.
ninja doc
ctest --output-on-failure
If tests fail without reason, please send us a bug report including detailed results from the test cases, state your operating system, kernel, and chipset.
echo $MSYSTEM
uname -a
gcc --version
ctest -V --output-on-failure
Build Configuration
You can configure the build process by specifying a number of CMake options. Building of selected libraries, demos, or extra applications can be disabled in order to avoid certain dependencies if they are not required. The following table shows an overview of all RL specific parameters and their default values. These options can be directly appended to the cmake
command. For a detailed overview of all options, you can run one of the available user interfaces of CMake or cmake-gui
.
Option | Description | Values |
---|---|---|
-D BUILD_DEMOS=ON | Enable/disable building the demo applications. | ON/OFF |
-D BUILD_DOCUMENTATION=OFF | Enable/disable building the API documentation. | ON/OFF |
-D BUILD_EXTRAS=ON | Enable/disable building the extra applications. | ON/OFF |
-D BUILD_RL_HAL=ON | Enable/disable building the RL::HAL library and its dependencies. | ON/OFF |
-D BUILD_RL_KIN=ON | Enable/disable building the RL::KIN library and its dependencies. | ON/OFF |
-D BUILD_RL_MATH=ON | Enable/disable building the RL::MATH library and its dependencies. | ON/OFF |
-D BUILD_RL_MDL=ON | Enable/disable building the RL::MDL library and its dependencies. | ON/OFF |
-D BUILD_RL_PLAN=ON | Enable/disable building the RL::PLAN library and its dependencies. | ON/OFF |
-D BUILD_RL_SG=ON | Enable/disable building the RL::SG library and its dependencies. | ON/OFF |
-D BUILD_RL_UTIL=ON | Enable/disable building the RL::UTIL library and its dependencies. | ON/OFF |
-D BUILD_RL_XML=ON | Enable/disable building the RL::XML library and its dependencies. | ON/OFF |
-D BUILD_SHARED_LIBS=ON | Enable/disable building shared libraries. | ON/OFF |
-D BUILD_TESTS=ON | Enable/disable building the test applications. | ON/OFF |
-D USE_QT5=ON | Prefer Qt5 over Qt4 if available. | ON/OFF |