Skip to content

aosedge/aos_core_iam_cpp

Repository files navigation

ci codecov

Identity and Access Manager(IAM)

Prepare build environment

sudo apt install lcov libsofthsm2 libsystemd-dev
pip install conan

Cloning Submodules

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.

Build for host

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

Run unit tests

Build and run:

./host_build.sh
cd ${BUILD_DIR}
make test

Check coverage

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.

Generate documentation

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.

Install libraries

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

Development tools

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/

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages