Static Code Analysis (SCA)¶
Support for static code analysis tools in Zephyr is possible through CMake.
The build setting ZEPHYR_SCA_VARIANT can be used to specify the SCA
tool to use.
ZEPHYR_SCA_VARIANT is also supported as
-DZEPHYR_SCA_VARIANT=<tool>, for example
to enable the static analysis tool
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 SCA_ROOT but the build system offers the possibility to add additional folders to the SCA_ROOT setting.
You can provide support for out of tree SCA tools by creating the following structure:
<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 confgures the tool to be used with Zephyr
/path/to/my_tools/cmake/sca create the following structure:
/path/to/my_tools └── cmake/ └── sca/ └── foo/ └── sca.cmake
foo as SCA tool you must then specify
Remember to add
/path/to/my_tools to SCA_ROOT.
SCA_TOOL can be set as a regular CMake setting using
-DSCA_ROOT=<sca_root>, or added by a Zephyr module in its
file, see Zephyr Modules - Build settings
Native SCA Tool support¶
The following is a list of SCA tools natively supported by Zephyr build system.