7. 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.
7.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 |
|
|
|
Disables Transport Layer Security (TLS) Support. Please refer to TLS over TCP |
|
|
|
Adds Shared Memory transport (SHM) to the default transports.
Please refer to |
|
|
|
Enables the Fast DDS Statistics module. Please refer to Statistics Module for |
|
|
|
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 |
|
|
|
Builds the SQLITE3 Plugin, which enables the |
|
|
|
When |
|
|
|
When
Fast-DDS requires the use of |
|
|
|
Adds run-time instrumentation to the code. Supported options are:
|
|
|
7.2. Log options
Fast DDS uses its own configurable Log module with different verbosity levels. Please, refer to Logging section for more information.
This module can be configured using Fast DDS CMake arguments regarding the following options.
Option |
Description |
Possible values |
Default |
---|---|---|---|
|
Selects the default log consumer for the logging module. |
|
|
|
Deactivates Info Log level. |
|
|
|
Enables Info Log level even on non |
|
|
|
Deactivates Warning Log level. |
|
|
|
Deactivates Error Log level. |
|
|
|
Activates compilation of log messages |
|
|
|
Enable old log macros |
|
|
7.3. 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.
7.4. 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 |
---|---|---|---|
|
Enables the building of black-box tests for the verification of DDS communications |
|
|
|
Enables the building of example tests for the verification of the Fast DDS examples |
|
|
|
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. |
|
|
|
Android cross-compilation only. Marks the tests for installation on the |
|
|
|
Android cross-compilation only. Path on the Android device/emulator to |
|
|