IMPORTANT: this repo is archived and moved to https://github.com/aosedge/aos_core_cpp.
sudo apt install lcov libsofthsm2 libsystemd-dev
pip install conanTo download the submodules, use the following command:
git submodule update --init --recursiveThis 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.shIt 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=DebugCmake 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 testlcov utility shall be installed on your host to run this target:
sudo apt install lcovBuild and run:
./host_build.sh
cd ${BUILD_DIR}
make coverageThe 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 doxygenhost_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 docThe 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/locationInstall:
cd ${BUILD_DIR}
make installThe 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/ |