Skip to content

CMake options

eCAL is using CMake as build system. The build makes use of CMake options to configure what features to build and to see what capabilities are available. The options are grouped by their prefix:

  • HAS_ variables indicate if a certain feature is supported for the build. E.g setting HAS_QT5 to off, will disable all components of eCAL that have a GUI attached.
  • BUILD_ variables turn on / off certain eCAL components. Those components can be language bindings, application (like monitor / player / recorder), documentation or tests
  • ECAL_THIRDPARTY_ variables control on a dependency by dependency basis, if that dependency is to be compiled alongside eCAL.

There are a few addional options which do not fit in these categories, but they are also documentd below.

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

CMake optionDefaultDescription
HAS_HDF5ONPlatform supports HDF5 library
HAS_QTONPlatform supports Qt 5 6 library.
HAS_CURLONBuild with CURL (i.e. upload support in the recorder app)
HAS_CAPNPROTOOFFPlatform supports Cap’n Proto library
HAS_FLATBUFFERSOFFPlatform supports flatbuffers library
HAS_FTXUIONPlatform supports FTXUI library. Requires C
BUILD_DOCSOFFBuild the eCAL documentation
BUILD_APPSONBuild the eCAL applications
BUILD_SAMPLESONBuild the eCAL samples
BUILD_TIMEONBuild the eCAL time interfaces
BUILD_PY_BINDINGOFFBuild eCAL python binding
BUILD_STANDALONE_PY_WHEELOFFBuild eCAL python binding as standalone wheel
BUILD_CSHARP_BINDINGOFFBuild eCAL C# binding
BUILD_ECAL_TESTSOFFBuild the eCAL google tests
ECAL_INCLUDE_PY_SAMPLESOFFInclude python language sample projects into CMake
ECAL_INSTALL_SAMPLE_SOURCESONInstall the sources of eCAL samples
ECAL_NPCAP_SUPPORTOFFEnable the eCAL Npcap Receiver (i.e. the Win10 performance fix)
ECAL_USE_CLOCKLOCK_MUTEXOFFUse native mutex with monotonic clock (requires glibc >- 2.30)
ECAL_THIRDPARTY_BUILD_ASIOONBuild asio with eCAL
ECAL_THIRDPARTY_BUILD_CMAKE_FUNCTIONSONBuild CMakeFunctions with eCAL
ECAL_THIRDPARTY_BUILD_FINEFTPONBuild fineFTP with eCAL
ECAL_THIRDPARTY_BUILD_FTXUIONBuild ftxui with eCAL
ECAL_THIRDPARTY_BUILD_GTESTOFFBuild gtest with eCAL
ECAL_THIRDPARTY_BUILD_RECYCLEONBuild steinwurf::recylce with eCAL
ECAL_THIRDPARTY_BUILD_SPDLOGONBuild spdlog with eCAL
ECAL_THIRDPARTY_BUILD_SIMPLEINIONBuild simpleini with eCAL
ECAL_THIRDPARTY_BUILD_TCLAPONBuild tclap library with eCAL
ECAL_THIRDPARTY_BUILD_TCP_PUBSUBONBuild tcp_pubsub library with eCAL
ECAL_THIRDPARTY_BUILD_TERMCOLORONBuild termcolor with eCAL
ECAL_THIRDPARTY_BUILD_TINYXML2ONBuild tinyxml2 with eCAL
ECAL_THIRDPARTY_BUILD_UDPCAPOFFBuild udpcap library with eCAL
ECAL_THIRDPARTY_BUILD_PROTOBUFONBuild protobuf with eCAL
ECAL_THIRDPARTY_BUILD_YAML-CPPONBuild yaml-cpp with eCAL
ECAL_THIRDPARTY_BUILD_CURLONBuild CURL with eCAL
ECAL_THIRDPARTY_BUILD_HDF5ONBuild HDF5 with eCAL
ECAL_THIRDPARTY_BUILD_QWTONBuild qwt::qwt with eCAL
ECAL_LINK_HDF5_SHAREDONLink shared libs of HDF5
CPACK_PACK_WITH_INNOSETUPONCreate Innosetup installer for the Windows build

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.