This script is a wrapper for a couple of helper scripts: cc_driver.pl and cppcheck.pl. It simplifies running cppcheck on a tree of source files using a compilation database (compile_commands.json
).
cc_cppcheck.sh [-d] [-v] [-p build_path] [-i include_pattern] [parameters]
Parameter | Description |
---|---|
-d | Debug -- print generated command to stdout, but don't execute it. |
-i include_pattern | File paths matching include_pattern are included in generated commands. May be specified multiple times. If omitted, all files in the compilation database are included. Note that the pattern is NOT a file-globbing pattern, but simply a regex evaluated using Perl. |
-x exclude_pattern | File paths matching exclude_pattern are not included in generated commands. May be specified multiple times. All exclude_patterns are matched after any include patterns, so exclude patterns effectively override include patterns. |
-p build_path | Specifies the path to a compilation database in JSON format. It can be either an absolute path to a compilation database, or a directory (which will be searched for a compile_commands.json file). If omitted, the current directory is used. |
-c | Create output in csv format, using the .csv file extension. |
The script looks for the file .cppcheckrc
in the source files's directory and its parents. If found, the contents of that file are passed to cppcheck
as command line parameters. Blank lines and comment lines (lines beginning with #
) are ignored.
A typical .cppcheckrc
file might look something like this:
# this is a comment
--enable=all --inconclusive
--error-exitcode=19
--std=posix --std=c++03
--platform=unix64
--suppress=unusedFunction
--suppress=unmatchedSuppression
See this series of posts for more information.