CMake options

eCAL is using CMake as build system. When configuring with CMake, you can turn on / off the following features.

All options can be passed on the command line cmake -D<option>=<value> or in the CMake GUI application.

CMake option

Default

Description

HAS_HDF5

ON

Platform supports HDF5 library, necessary to build eCAL recording / replay tools

HAS_QT5

ON

Platform supports Qt 5 library, necessary to build eCAL monitoring tool

HAS_CURL

ON

Build with CURL (i.e. upload support in the recorder app)

HAS_CAPNPROTO

OFF

Platform supports Cap’n Proto library, necessary to use capnp serialization as message system and to enable eCAL monitoring capnp message reflection. eCAL does not add Cap’n Proto as a submodule. If you set this option to ON, please make sure that the library is installed on your system and CMake can find it (consider setting CMAKE_PREFIX_PATH to point to the library).

BUILD_DOCS

OFF

Build the eCAL documentation, requires the installation of doxygen and a recent CMake version (>= 3.14 preferred, but some lower versions might work)

BUILD_APPS

ON

Build the eCAL applications, such as the monitoring tool

BUILD_SAMPLES

OFF

Build the eCAL sample applications

BUILD_TIME

ON

Build the eCAL time interfaces, necessary if you want to use eCAL in time synchronized mode (based on PTP for example)

BUILD_PY_BINDING

OFF

Build the eCAL python language binding

BUILD_CSHARP_BINDING

OFF

Build the eCAL C# language binding

BUILD_ECAL_TESTS

OFF

Build the eCAL google tests

ECAL_LAYER_ICEORYX

OFF

Use iceoryx shared memory as local communication layer, requires eclipse/iceoryx installation

ECAL_INCLUDE_PY_SAMPLES

OFF

Include python language sample projects into CMake

ECAL_INSTALL_SAMPLE_SOURCES

ON

Install the sources of eCAL samples

ECAL_JOIN_MULTICAST_TWICE

OFF

Specific multicast network bug workaround

ECAL_NPCAP_SUPPORT

OFF

Enable the eCAL to use Npcap for udp socket communication (i.e. the Win10 performance fix)

ECAL_THIRDPARTY_BUILD_PROTOBUF

ON

Build Protobuf with eCAL, included as a submodule in the thirdparty folder. You can always use your custom protobuf installation, this is only for convenience. Note, at least protobuf 3.0 is required to compile eCAL, we recommend using 3.11.4 or newer (tested with 3.11.4).

ECAL_THIRDPARTY_BUILD_SPDLOG

ON

Build Spdlog with eCAL, included as a submodule in the thirdparty folder. You can always use your custom spdlog installation, this is only for convenience.

ECAL_THIRDPARTY_BUILD_TINYXML2

ON

Build tinyxml2 with eCAL, included as a submodule in the thirdparty folder.

ECAL_THIRDPARTY_BUILD_FINEFTP

ON

Build fineFTP with eCAL, included as a submodule in the thirdparty folder.

ECAL_THIRDPARTY_BUILD_CURL

ON

Build CURL with eCAL, included as a submodule in the thirdparty folder.

ECAL_THIRDPARTY_BUILD_GTEST

OFF

Build GoogleTest with eCAL, included as a submodule in the thirdparty folder. You can always use your custom gtest installation, this is only for convenience.

ECAL_THIRDPARTY_BUILD_HDF5

ON

Build HDF5 with eCAL, included as a submodule in the thirdparty folder.

To build the eCAL csharp extension you need to set the CMake option BUILD_CSHARP_BINDING to ON. In order to make the CSharp Google::Protobuf extension work you need to install additionally the Microsoft package management tool Nuget. Please ensure that the installation path is part of your windows user or system PATH environment variable. Nuget will be used to download the .Net Google.Protobuf package automatically when building the extension.