sudo apt install lcov libsofthsm2 libsystemd-dev
pip install conan
To make a build for host please run:
./host_build.sh
It installs all external dependencies to conan, creates ./build
directory and builds the manager with unit tests and coverage calculation target.
It is also possible to customize the build using different cmake options:
cd ${BUILD_DIR}
conan install ../conan/ --output-folder . --settings=build_type=Debug --build=missing
cmake .. -DCMAKE_TOOLCHAIN_FILE=./conan_toolchain.cmake -DWITH_TEST=ON -DCMAKE_BUILD_TYPE=Debug
Cmake options:
Option | Description |
---|---|
WITH_TEST |
creates unit tests target |
WITH_COVERAGE |
creates coverage calculation target |
WITH_DOC |
creates documentation target |
Options should be set to ON
or OFF
value.
Cmake variables:
Variable | Description |
---|---|
CMAKE_BUILD_TYPE |
Release , Debug , RelWithDebInfo , MinSizeRel |
CMAKE_INSTALL_PREFIX |
overrides default install path |
Build and run:
./host_build.sh
cd ${BUILD_DIR}
make test
lcov
utility shall be installed on your host to run this target:
sudo apt install lcov
Build and run:
./host_build.sh
cd ${BUILD_DIR}
make coverage
The overall coverage rate will be displayed at the end of the coverage target output:
...
Overall coverage rate:
lines......: 94.7% (72 of 76 lines)
functions..: 100.0% (39 of 39 functions)
Detailed coverage information can be find by viewing ./coverage/index.html
file in your browser.
doxygen
package should be installed before generation the documentations:
sudo apt install doxygen
host_build.sh
tool doesn't generate documentation. User should run the following commands to do that:
cd ${BUILD_DIR}
conan install ../conan/ --output-folder . --settings=build_type=Debug --build=missing
cmake .. -DCMAKE_TOOLCHAIN_FILE=./conan_toolchain.cmake -DWITH_DOC=ON
make doc
The result documentation is located in ${BUILD_DIR}/doc folder
. And it can be viewed by opening
./doc/html/index.html
file in your browser.
The default install path can be overridden by setting CMAKE_INSTALL_PREFIX
variable.
Configure example with user defined install prefix:
cd ${BUILD_DIR}
conan install ../conan/ --output-folder . --settings=build_type=Release --build=missing
cmake .. -DCMAKE_TOOLCHAIN_FILE=./conan_toolchain.cmake -DCMAKE_INSTALL_PREFIX=/my/location
Install:
cd ${BUILD_DIR}
make install
The following tools are used for code formatting and analyzing:
Tool | Description | Configuration | Link |
---|---|---|---|
clang-format |
used for source code formatting | .clang-format | https://clang.llvm.org/docs/ClangFormat.html |
cmake-format |
used for formatting cmake files | .cmake-format | https://github.com/cheshirekow/cmake_format |
cppcheck |
used for static code analyzing | https://cppcheck.sourceforge.io/ |