You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.1 KiB
71 lines
2.1 KiB
.. _sca: |
|
|
|
Static Code Analysis (SCA) |
|
########################## |
|
|
|
Support for static code analysis tools in Zephyr is possible through CMake. |
|
|
|
The build setting :makevar:`ZEPHYR_SCA_VARIANT` can be used to specify the SCA |
|
tool to use. :envvar:`ZEPHYR_SCA_VARIANT` is also supported as |
|
:ref:`environment variable <env_vars>`. |
|
|
|
Use ``-DZEPHYR_SCA_VARIANT=<tool>``, for example ``-DZEPHYR_SCA_VARIANT=sparse`` |
|
to enable the static analysis tool ``sparse``. |
|
|
|
.. _sca_infrastructure: |
|
|
|
SCA Tool infrastructure |
|
*********************** |
|
|
|
Support for an SCA tool is implemented in a :file:`sca.cmake` file. |
|
The :file:`sca.cmake` must be placed under :file:`{SCA_ROOT}/cmake/sca/{tool}/sca.cmake`. |
|
Zephyr itself is always added as an :makevar:`SCA_ROOT` but the build system offers the |
|
possibility to add additional folders to the :makevar:`SCA_ROOT` setting. |
|
|
|
You can provide support for out of tree SCA tools by creating the following |
|
structure: |
|
|
|
.. code-block:: none |
|
|
|
<sca_root>/ # Custom SCA root |
|
└── cmake/ |
|
└── sca/ |
|
└── <tool>/ # Name of SCA tool, this is the value given to ZEPHYR_SCA_VARIANT |
|
└── sca.cmake # CMake code that configures the tool to be used with Zephyr |
|
|
|
To add ``foo`` under ``/path/to/my_tools/cmake/sca`` create the following structure: |
|
|
|
.. code-block:: none |
|
|
|
/path/to/my_tools |
|
└── cmake/ |
|
└── sca/ |
|
└── foo/ |
|
└── sca.cmake |
|
|
|
To use ``foo`` as SCA tool you must then specify ``-DZEPHYR_SCA_VARIANT=foo``. |
|
|
|
Remember to add ``/path/to/my_tools`` to :makevar:`SCA_ROOT`. |
|
|
|
:makevar:`SCA_TOOL` can be set as a regular CMake setting using |
|
``-DSCA_ROOT=<sca_root>``, or added by a Zephyr module in its :file:`module.yml` |
|
file, see :ref:`Zephyr Modules - Build settings <modules_build_settings>` |
|
|
|
.. _sca_native_tools: |
|
|
|
Native SCA Tool support |
|
*********************** |
|
|
|
The following is a list of SCA tools natively supported by Zephyr build system. |
|
|
|
.. toctree:: |
|
:maxdepth: 1 |
|
|
|
codechecker |
|
sparse |
|
gcc |
|
clang |
|
cpptest |
|
eclair |
|
polyspace |
|
coverity
|
|
|