CodeChecker allows the configuration from explicit configuration files for
multiple commands through the --config option:
CodeChecker analyzeCodeChecker checkCodeChecker parseCodeChecker serverCodeChecker store
The values configured in the config file will overwrite the values set in the command line.
For example if you run the following command:
CodeChecker analyze compilation.json -o ./reports --config ./codechecker.jsonthen the analyzer parameters from the
codechecker.json configuration
file will be emplaced as command line arguments:
CodeChecker analyze \
compilation.json \
-o ./reports \
--enable=core.DivideZero \
--enable=core.CallAndMessage \
--analyzer-config clangsa:unroll-loops=true \
--checker-config clang-tidy:google-readability-function-size.StatementThreshold=100 \
--report-hash context-free-v2 \
--verbose debug \
--cleanFor supported configuration file formats please read the sections below.
You can use any environment variable inside this file (e.g: $HOME,
$USER) and it will be expanded:
{ "analyze": [ "--skip=$HOME/project/skip.txt" ] }
Note: If the configuration file doesn't have an extension, to be backward compatible with old releases the default will be JSON. We recommend to use explicit extensions for configuration files (e.g.:
json,yaml, etc.).
The format of JSON configuration file looks like this:
{
"analyze": [
"--enable=core.DivideZero",
"--enable=core.CallAndMessage",
"--analyzer-config",
"clangsa:unroll-loops=true",
"--checker-config",
"clang-tidy:google-readability-function-size.StatementThreshold=100",
"--report-hash", "context-free-v2",
"--verbose=debug",
"--clean"
],
"parse": [
"--trim-path-prefix",
"$HOME/workspace"
],
"server": [
"--workspace=$HOME/workspace",
"--port=9090"
],
"store": [
"--name=run_name",
"--tag=my_tag",
"--url=http://codechecker.my:9090/MyProduct"
]
}These configuration files must have extension json.
Options which require parameters have to be in either of the following formats:
- Use equal sign to separate option and parameter in quotes:
{ "analyze": [ "--verbose=debug" ] } - Use separated values for option and parameter:
{ "analyze": [ "--verbose", "debug" ] }
Note: The limitation of this format is that you can't write comments in this file. If you would like to leave comments (e.g.: why you enabled a checker or an option) please use YAML format.
The format of YAML configuration file looks like this:
analyzer:
# Enable/disable checkers.
- --enable=core.DivideZero
- --enable=core.CallAndMessage
# Analyzer configurations.
- --analyzer-config=clangsa:unroll-loops=true
- --checker-config=clang-tidy:google-readability-function-size.StatementThreshold=100
# Optional options.
- --report-hash=context-free-v2
- --verbose=debug
- --clean
parse:
- --trim-path-prefix=$HOME/workspace
server:
- --workspace=$HOME/workspace"
- --port=9090"
store:
- --name=run_name
- --tag=my_tag
- --url=http://codechecker.my:9090/MyProductThese configuration files must have extension yml or yaml.