.. _tools: Tools ===== There are multiple tools used by this project, let's try to list them all (and probably failed): #. ``CMake`` - The build-system itself. #. ``Doxygen`` - Documentation generator tool for C/C++ based projects. #. ``Sphinx`` - Documentation generator tool. #. ``breathe`` - a ``sphinx`` extension for combining ``sphinx`` with ``doxygen``. #. ``CppUTest`` - a unit-testing framework for C++ code. #. :ref:`cppcheck ` - static analyzer tool for C/C++ code. #. :ref:`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. #. :ref:`include-what-you-use ` - A tool for use with clang to analyze #includes in C and C++ source files. #. :ref:`shfmt ` - bash scripts formatter. #. :ref:`shellcheck ` - static analyzer for bash scripts. #. :ref:`clang-format ` - a ``clang``-based code formatter. #. ``PlantUML`` - Tool for generating images from UML text. #. ``Graphviz`` - Tool for generating images from graphviz text. #. :ref:`mypy ` - a static type checker for ``python`` code. #. :ref:`ruff ` - a linter, formatter & static analyzer for ``python`` code. .. toctree:: :maxdepth: 2 :caption: Further Exaplanation of Some of the Listed Tools: shfmt shellcheck cppcheck clang-tidy iwyu clang-format mypy ruff