Developer Tools =============== This page describes static and dynamic analysis tools used in the development of Kynema. These tools are run and must pass as part of the CI process, so it will likely become important for integration into a developer's process. clang-format ------------ `ClangFormat `_ is used for linting to enforce a consistent code style. It can be installed with most package managers. ClangFormat is configured by the ``.clang-format`` file at the top of the repository. If the tool is run from the top directory, it will automatically detect and load the settings in the configuration file. clang-tidy ---------- `ClangTidy `_ is another linting tool tool which enforces a variety of rules on the code in order to avoid common bugs. ClangTidy is configure by the ``.clang-tidy`` file at the top of the repository. To run it, configure Kynema with the ``Kynema_ENABLE_CLANG_TIDY`` option. Cppcheck -------- `Cppcehck `_ is yet another linting tools which detects undefined behavior and dangerous constructs with very few false positives. To run Cppcheck, configure Kynema with the ``Kynema_ENABLE_CPPCHECK`` option.