sudo apt install lcov libsofthsm2 libsystemd-dev
pip install conan
To download the submodules, use the following command:
git submodule update --init --recursive
This command will recursively fetch all submodules located in the external
directory. Additionally, the submodules
themselves may include other submodules, which will also be placed in the external
directory.
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/ |