6. CMake options¶
eProsima Fast DDS provides numerous CMake options for changing the behavior and configuration of Fast DDS. These options allow the user to enable/disable certain Fast DDS settings by defining these options to ON/OFF at the CMake execution. This section is structured as follows: first, the CMake options for the general configuration of Fast DDS are described; then, the options related to the third party libraries are presented; finally, the possible options for the building of Fast DDS tests are defined.
6.1. General options¶
The Fast DDS CMake options for configuring general settings are shown below, together with their description and dependency on other options.
Option |
Description |
Possible values |
Default |
---|---|---|---|
|
Creates a build for Windows binary installers. Specifically it adds to the list of
|
|
|
|
Activates internal Fast DDS builds.
It is set to
|
|
|
|
Builds internal libraries as shared libraries, i.e. cause |
|
|
|
Activates the Fast DDS security module. Please refer to Security for more information |
|
|
|
Disables Transport Layer Security (TLS) Support. Please refer to TLS over TCP for |
|
|
|
Adds Shared Memory transport (SHM) to the default transports.
Please refer to SHM section |
|
|
|
Selects the default log consumer for the logging module. |
|
|
|
Builds the Fast DDS examples. It is set to |
|
|
|
Installs the Fast DDS examples, i.e. adds the Fast DDS examples to the list of |
|
|
|
Uses doxygen to create the Fast DDS API reference documentation. It is set to |
|
|
|
Downloads Fast DDS documentation from Read the Docs media servers. The |
|
|
|
Enables a strict real-time behaviour. Please refer to the Real-Time Use Case for |
|
|
|
Activates |
|
|
|
Builds the SQLITE3 Plugin, which enables the |
|
|
6.1.1. Third-party libraries options¶
Fast DDS relies on the eProsima FastCDR library for serialization
mechanisms.
Moreover, Fast DDS requires two external dependencies for its proper operation: Asio and TinyXML2.
Asio is a cross-platform C++ library for network and low-level I/O programming, while TinyXML2 parses the XML profile
files, so Fast DDS can use them (see XML profiles).
These three libraries (eProsima FastCDR, Asio and TinyXML2) can be installed by the user, or downloaded on the
Fast DDS build.
In the latter case, they are referred to as Fast DDS internal third-party libraries.
This can be done by setting either THIRDPARTY
or EPROSIMA_BUILD
to ON
.
These libraries can also be configured using Fast DDS CMake options.
Option |
Description |
Possible values |
Default |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
android-ifaddrs is an implementation of |
|
|
|
Unless they are otherwise specified, sets value of all third-party |
|
|
|
Activates the update of all third-party git submodules. |
|
|
Note
ANDROID
is a CMake environment variable that is set to 1
if the target system
(CMAKE_SYSTEM_NAME
) is Android.
6.1.2. Test options¶
eProsima Fast DDS comes with a full set of tests for continuous integration. The types of tests are: unit tests, black-box tests, performance tests, profiling tests, and XTypes tests. The building and execution of these tests is specified by the Fast DDS CMake options shown in the table below.
Option |
Description |
Possible values |
Default |
---|---|---|---|
|
Activate the individual building of GoogleTest tests, since Fast DDS tests are |
|
|
|
Activates special set of GTEST_ROOT, i.e. the root directory of the GoogleTest |
|
|
|
Activates special set of GMOCK_ROOT, i.e. the root directory of the GoogleTest C++ |
|
|
|
Enables the building of black-box tests for the verification of RTPS communications |
|
|
|
Enables the building of black-box tests for the verification of DDS communications |
|
|
|
Activates the building of performance tests, except for the video test, which requires |
|
|
|
Activates the building of profiling tests using Valgrind. |
|
|
|
Activates the building of black-box, unit, xtypes, RTPS communication and |
|
|
|
If |
|
|
|
Disables UDPv6 tests. |
|
|