IDF Clang-Tidy

[中文]

The IDF Clang Tidy is a tool that uses clang-tidy to run static analysis on your current app.

Warning

This functionality and the toolchain it relies on are still under development. There may be breaking changes before a final release.

Only clang based toolchain is currently supported. It has to be activated by setting IDF_TOOLCHAIN=clang in the environment or in CMake cache before configuring the project.

Warning

This tool does not support RISC-V based chips yet. For now, we do not provide clang based toolchain for RISC-V.

Prerequisites

If you have never run this tool before, take the following steps to get this tool prepared.

  1. Run idf_tools.py install esp-clang to install the clang-tidy required binaries

    Note

    This toolchain is still under development. After the final release, you do not have to install them manually.

  2. Run the export scripts (export.sh / export.bat / ... ) again to refresh the environment variables.

Extra Commands

clang-check

Run idf.py clang-check to re-generate the compilation database and run clang-tidy under your current project folder. The output would be written to <project_dir>/warnings.txt.

Run idf.py clang-check --help to see the full documentation.

clang-html-report

  1. Run pip install codereport to install the additional dependency.

  2. Run idf.py clang-html-report to generate an HTML report in folder <project_dir>/html_report according to the warnings.txt. Please open the <project_dir>/html_report/index.html in your browser to check the report.

Bug Report

This tool is hosted in espressif/clang-tidy-runner. If you were to face any bugs or have any feature request, please report them via Github issues