infer-compile - compile project from within the infer environment
infer compile -- [compile command]
Intercepts compilation commands similarly to infer-capture, but simply execute these compilation commands and do not perform any translation of the source files. This can be useful to configure build systems or for debugging purposes.
--debug,-g
Activates: Debug mode (also sets --debug-level 2, --developer-mode, --no-filtering, --print-buckets, --print-types, --reports-include-ml-loc, --no-only-cheap-debug, --trace-error, --write-dotty, --write-html) (Conversely: --no-debug | -G)
--debug-level level
Debug level (sets --bo-debug level, --debug-level-analysis level, --debug-level-capture level, --debug-level-linters level):
- 0: only basic debugging
enabled
- 1: verbose debugging enabled
- 2: very verbose debugging enabled
--debug-level-analysis int
Debug level for the analysis. See --debug-level for accepted values. (default: 0)
--debug-level-capture int
Debug level for the capture. See --debug-level for accepted values. (default: 0)
--debug-level-linters int
Debug level for the linters. See --debug-level for accepted values. (default: 0)
--force-delete-results-dir
Activates: Do not refuse to delete the results directory if it doesn't look like an infer results directory. (Conversely: --no-force-delete-results-dir)
--help
Show this manual
--help-format { auto | groff | pager | plain }
Show this help in the specified format. auto sets the format to plain if the environment variable TERM is "dumb" or undefined, and to pager otherwise. (default: auto)
--help-full
Show this manual with all internal options in the INTERNAL OPTIONS section
INFER_ARGS, INFERCONFIG, INFER_STRICT_MODE
See the ENVIRONMENT section in the manual of infer(1).
.inferconfig
See the FILES section in the manual of infer(1).
cmake(1) hardcodes the absolute paths to the compiler inside the Makefiles it generates, which defeats the later capture of compilation commands by infer. Thus, to capture a CMake project, one should configure the project from within the infer build environment, for instance:
mkdir build
&& cd build
infer compile -- cmake ..
infer capture -- make
The same solution can be used for projects whose "./configure" script hardcodes the paths to the compilers, for instance:
infer compile
-- ./configure
infer capture -- make
Another solution for CMake projects is to use CMake's compilation databases, for instance:
mkdir build
&& cd build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
infer capture --compilation-database
compile_commands.json
infer-capture(1)