.. _codechecker: CodeChecker support ################### `CodeChecker `__ is a static analysis infrastructure. It executes analysis tools available on the build system, such as `Clang-Tidy `__, `Clang Static Analyzer `__ and `Cppcheck `__. Refer to the analyzer's websites for installation instructions. Installing CodeChecker ********************** CodeChecker itself is a python package available on `pypi `__. .. code-block:: shell pip install codechecker Building with CodeChecker ************************* To run CodeChecker, :ref:`west build ` should be called with a ``-DZEPHYR_SCA_VARIANT=codechecker`` parameter, e.g. .. code-block:: shell west build -b mimxrt1064_evk samples/basic/blinky -- -DZEPHYR_SCA_VARIANT=codechecker Configuring CodeChecker *********************** CodeChecker uses different command steps, each with their respective configuration parameters. The following table lists all these options. .. list-table:: :header-rows: 1 * - Parameter - Description * - ``CODECHECKER_ANALYZE_JOBS`` - The number of threads to use in analysis. (default: ) * - ``CODECHECKER_ANALYZE_OPTS`` - Arguments passed to the ``analyze`` command directly. (e.g. ``--timeout;360``) * - ``CODECHECKER_CLEANUP`` - Perform a cleanup after parsing/storing. This will remove all ``plist`` files. * - ``CODECHECKER_CONFIG_FILE`` - A JSON or YAML file with configuration options passed to all commands. * - ``CODECHECKER_EXPORT`` - A comma separated list of report types. Allowed types are: ``html,json,codeclimate,gerrit,baseline``. * - ``CODECHECKER_NAME`` - The CodeChecker run metadata name. (default: ``zephyr``) * - ``CODECHECKER_PARSE_EXIT_STATUS`` - By default, CodeChecker identified issues will not fail the build, set this option to fail during analysis. * - ``CODECHECKER_PARSE_OPTS`` - Arguments passed to the ``parse`` command directly. (e.g. ``--verbose;debug``) * - ``CODECHECKER_PARSE_SKIP`` - Skip parsing the analysis, useful if you simply want to store the results. * - ``CODECHECKER_STORE`` - Run the ``store`` command after analysis. * - ``CODECHECKER_STORE_OPTS`` - Arguments passed to the ``store`` command directly. Implies ``CODECHECKER_STORE``. (e.g. ``--url;localhost:8001/Default``) * - ``CODECHECKER_STORE_TAG`` - Pass an identifier ``--tag`` to the ``store`` command. * - ``CODECHECKER_TRIM_PATH_PREFIX`` - Trim the defined path from the analysis results, e.g. ``/home/user/zephyrproject``. The value from ``west topdir`` is added by default. These parameters can be passed on the command line, or be set as environment variables. Running twister with CodeChecker ******************************** When running CodeChecker as part of ``twister`` some default options are set as following: .. list-table:: :header-rows: 1 * - Parameter - Value * - ``CODECHECKER_ANALYZE_JOBS`` - ``1`` * - ``CODECHECKER_NAME`` - ``:`` * - ``CODECHECKER_STORE_TAG`` - The value from ``git describe`` in the application source directory. To override these values, set an environment variable or pass them as extra arguments.