Tools

There are multiple tools used by this project, let’s try to list them all (and probably failed):

  1. CMake - The build-system itself.

  2. Doxygen - Documentation generator tool for C/C++ based projects.

  3. Sphinx - Documentation generator tool.

  4. breathe - a sphinx extension for combining sphinx with doxygen.

  5. CppUTest - a unit-testing framework for C++ code.

  6. cppcheck - static analyzer tool for C/C++ code.

  7. clang-tidy - clang-tidy is a clang-based C++ “linter” tool. Its purpose is to provide an extensible framework for diagnosing and fixing typical programming errors, like style violations, interface misuse, or bugs that can be deduced via static analysis. clang-tidy is modular and provides a convenient interface for writing new checks.

  8. include-what-you-use - A tool for use with clang to analyze #includes in C and C++ source files.

  9. shfmt - bash scripts formatter.

  10. shellcheck - static analyzer for bash scripts.

  11. clang-format - a clang-based code formatter.

  12. PlantUML - Tool for generating images from UML text.

  13. Graphviz - Tool for generating images from graphviz text.

  14. mypy - a static type checker for python code.

  15. ruff - a linter, formatter & static analyzer for python code.