codeclimate-cppcheck
is a Code Climate engine that wraps Cppcheck.
You can run it on your command line using the Code Climate CLI, or on our
hosted analysis platform.
Cppcheck is a static analysis tool for C/C++ code.
- If you haven't already, install the Code Climate CLI.
- [optional] Run
codeclimate engines:install cppcheck
to install the Code Climate Cppcheck engine. - Configure your
.codeclimate.yml
file. See example below. - You're ready to analyze! Browse into your project's folder and run
codeclimate analyze
. If you skipped step 2, the Cppcheck engine will automatically be installed at this point, assuming it's enabled in.codeclimate.yml
.
Like the cppcheck
command line tool itself, you can configure various
aspects of the static analysis. Right now, the following options are supported
in .codeclimate.yml
:
check
: issue categories to check. By default, no additional checks are enabled. Available values are:all
,warning
,style
,performance
,portability
,information
,unusedFunction
, etc. Refer to the--enable=
option ofcppcheck
for more information.project
: use Visual Studio project/solution (*.vcxproj
/*sln
) or compile database (compile_commands.json
) for files to analyse, include paths, defines, platform and undefines. Refer to the--project=
option ofcppcheck
for more information.language
: forcescppcheck
to check all files as the given language. Valid values are:c
,c++
. Refer to the--language=
option ofcppcheck
for more information.stds
: multiple language standards to check against. Refer to the--std=
option ofcppcheck
for more information.platform
: specifies platform specific types and sizes. Available builtin platforms are:unix32
,unix64
,win32A
,win32W
,win64
, etc. Refer to the--platform=
option ofcppcheck
for more information.library
: specifies librarycfg
files to be loaded. Refer to the--library=
option ofcppcheck
for more information.jobs
: specifies the number of jobs for execution Refer to the-j <jobs>
option ofcppcheck
for more information.dump
: create dump files during execution. Refer to the--dump
option ofcppcheck
for more information.defines
: define preprocessor symbols. Refer to the-D
option ofcppcheck
for more information.undefines
: undefine preprocessor symbols. Refer to the-U
option ofcppcheck
for more information.includes
: paths for searching include files. First given path is searched for contained header files first. If paths are relative to source files, this is not needed. Refer to the-I
option ofcppcheck
for more information.max_configs
: maximum number of configurations to check in a file before skipping it. Default is 12.max_configs
can also be set toforce
, which forcescppcheck
to check all configs. Refer to the--max-configs=
and--force
options ofcppcheck
for more information.inconclusive
: allow reporting issues that are not inconclusive. Refer to the--inconclusive
option ofcppcheck
for more information.suppressions-list
: suppress warnings listed in the file. Refer to the--suppressions-list
option ofcppcheck
for more information.inline-suppr
: allow suppression of warnings with inline comments, for example:// cppcheck-suppress arrayIndexOutOfBounds
. Refer to the--inline-suppr
option ofcppcheck
for more information
Additional options may be supported later.
An example .codeclimate.yml
file:
version: "2"
plugins:
cppcheck:
enabled: true
config:
check: all
project: compile_commands.json
language: c++
stds:
- c++11
platform: unix64
defines:
- "DEBUG=1"
- "__cplusplus"
undefines:
- "DEBUG"
includes:
- include/
max_configs: 42
inconclusive: false
dump: false
dump: false
suppressions-list: .cppcheck-suppressions
inline-suppr: true
jobs: 4
library: googletest
For help with Cppcheck, check out their documentation.
If you're running into a Code Climate issue, first look over this project's GitHub Issues, as your question may have already been covered. If not, go ahead and open a support ticket with us.