CMake options

// Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ...
CMAKE_BUILD_TYPE:STRING=

// Install path prefix, prepended onto install directories.
CMAKE_INSTALL_PREFIX:PATH=/usr/local

// Build DLT backend plugin
ELOSD_EVENTLOGGING_BACKEND_DLT:BOOL=ON

// Build InfluxDB backend plugin
ELOSD_EVENTLOGGING_BACKEND_INFLUXDB:BOOL=OFF

// Build NoSQL backend plugin
ELOSD_EVENTLOGGING_BACKEND_NOSQL:BOOL=OFF

// Build sqlite3 bakend plugin
ELOSD_EVENTLOGGING_BACKEND_SQL:BOOL=ON

// Build libelosdlt, a dlt protocol implementation.
ELOSD_LIBDLT:BOOL=ON

// enable all default builds
ELOS_BUILD_DEFAULTS:BOOL=ON

// build libelos_common
ELOS_COMMON:BOOL=ON

// Build elosd
ELOS_DAEMON:BOOL=ON

// Build the elos demos
ELOS_DEMOS:BOOL=ON

// build libelos
ELOS_LIBRARY:BOOL=ON

// build libelos-cpp
ELOS_LIBRARY_CPP:BOOL=ON

// build libelos-lite
ELOS_LIBRARY_LITE:BOOL=OFF

// Build the mock libraries
ELOS_MOCK_LIBRARY:BOOL=OFF

// Build the elos plugins
ELOS_PLUGINS:BOOL=ON

// build libelosplugin
ELOS_PLUGIN_LIBRARY:BOOL=ON

// Build elosc and other tools
ELOS_TOOLS:BOOL=ON

// Build with -fanalyzer
ENABLE_ANALYZER:BOOL=ON

// Link with ASAN
ENABLE_ASAN:BOOL=ON

// Use CI mode for building
ENABLE_CI:BOOL=OFF

// Enable the git hash for the version
ENABLE_GIT_VERSION:BOOL=ON

// Install elosd
INSTALL_ELOS_DAEMON:BOOL=ON

// Install the elos demos
INSTALL_ELOS_DEMOS:BOOL=ON

// Install the mock libraries
INSTALL_ELOS_MOCK_LIBRARY:BOOL=ON

// install the elos plugins
INSTALL_ELOS_PLUGINS:BOOL=ON

// Install elosc and other tools
INSTALL_ELOS_TOOLS:BOOL=ON

// Build smoke tests
INSTALL_SMOKE_TESTS:BOOL=OFF

// Install unit tests
INSTALL_UNIT_TESTS:BOOL=ON

// Path to a program.
PANDOC:FILEPATH=PANDOC-NOTFOUND

// Path to a program.
PLANTUML:FILEPATH=/usr/bin/plantuml

// Build smoke tests
SMOKE_TESTS:BOOL=ON

// Build unit tests
UNIT_TESTS:BOOL=ON

// The directory containing a CMake configuration file for cmocka.
cmocka_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/cmocka

// The directory containing a CMake configuration file for cmocka_extensions.
cmocka_extensions_DIR:PATH=/usr/local/lib/cmake/cmocka_extensions

// The directory containing a CMake configuration file for cmocka_mocks.
cmocka_mocks_DIR:PATH=/usr/local/lib/cmake/cmocka_mocks

// The directory containing a CMake configuration file for json-c.
json-c_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/json-c

// The directory containing a CMake configuration file for safu.
safu_DIR:PATH=/usr/local/lib/cmake/safu

// The directory containing a CMake configuration file for samconf.
samconf_DIR:PATH=/usr/local/lib/cmake/samconf

Usage of find_package

  • Always specify a version. find_package(dependecy X.Y.Z REQUIRED)

  • Specify the version used for development

  • The version doesn’t guarantee that in the future the build still works with this version.

  • The version does not necessarily say the previous versions will not work.

  • The version is just an indicator for later issue or bug tracking, to say: “It was developed with this version and it worked”.

  • Usually we always build against the latest available version of our dependencies, so we only can guarantee that the latest upstream version will work.