|
|
|
<!-- Creator : groff version 1.22.4 -->
|
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
|
|
"http://www.w3.org/TR/html4/loose.dtd">
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<meta name="generator" content="groff -Thtml, see www.gnu.org">
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
|
|
|
<meta name="Content-Style" content="text/css">
|
|
|
|
<style type="text/css">
|
|
|
|
p { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
|
|
|
pre { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
|
|
|
table { margin-top: 0; margin-bottom: 0; vertical-align: top }
|
|
|
|
h1 { text-align: center }
|
|
|
|
</style>
|
|
|
|
<title>infer-compile</title>
|
|
|
|
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
|
|
|
|
<h1 align="center">infer-compile</h1>
|
|
|
|
|
|
|
|
<a href="#NAME">NAME</a><br>
|
|
|
|
<a href="#SYNOPSIS">SYNOPSIS</a><br>
|
|
|
|
<a href="#DESCRIPTION">DESCRIPTION</a><br>
|
|
|
|
<a href="#OPTIONS">OPTIONS</a><br>
|
|
|
|
<a href="#ENVIRONMENT">ENVIRONMENT</a><br>
|
|
|
|
<a href="#FILES">FILES</a><br>
|
|
|
|
<a href="#EXAMPLES">EXAMPLES</a><br>
|
|
|
|
<a href="#SEE ALSO">SEE ALSO</a><br>
|
|
|
|
|
|
|
|
<hr>
|
|
|
|
|
|
|
|
|
|
|
|
<h2>NAME
|
|
|
|
<a name="NAME"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">infer-compile -
|
|
|
|
compile project from within the infer environment</p>
|
|
|
|
|
|
|
|
<h2>SYNOPSIS
|
|
|
|
<a name="SYNOPSIS"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>infer
|
|
|
|
compile --</b> <i>[compile command]</i></p>
|
|
|
|
|
|
|
|
<h2>DESCRIPTION
|
|
|
|
<a name="DESCRIPTION"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Intercepts
|
|
|
|
compilation commands similarly to <b>infer-capture</b>, 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.</p>
|
|
|
|
|
|
|
|
<h2>OPTIONS
|
|
|
|
<a name="OPTIONS"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>--debug</b>,<b>-g</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Debug mode (also
|
|
|
|
sets <b>--debug-level 2</b>, <b>--developer-mode</b>,
|
|
|
|
<b>--print-buckets</b>, <b>--print-types</b>,
|
|
|
|
<b>--reports-include-ml-loc</b>,
|
|
|
|
<b>--no-only-cheap-debug</b>, <b>--trace-error</b>,
|
|
|
|
<b>--write-html</b>) (Conversely: <b>--no-debug</b> |
|
|
|
|
<b>-G</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;"><b>--debug-level</b>
|
|
|
|
<i>level</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Debug level (sets
|
|
|
|
<b>--bo-debug</b> <i>level</i>,
|
|
|
|
<b>--debug-level-analysis</b> <i>level</i>,
|
|
|
|
<b>--debug-level-capture</b> <i>level</i>,
|
|
|
|
<b>--debug-level-linters</b> <i>level</i>):</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;">- 0: only basic debugging
|
|
|
|
enabled <br>
|
|
|
|
- 1: verbose debugging enabled <br>
|
|
|
|
- 2: very verbose debugging enabled <b><br>
|
|
|
|
--debug-level-analysis</b> <i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Debug level for the analysis.
|
|
|
|
See <b>--debug-level</b> for accepted values.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;"><b>--debug-level-capture</b>
|
|
|
|
<i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Debug level for the capture.
|
|
|
|
See <b>--debug-level</b> for accepted values.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;"><b>--debug-level-linters</b>
|
|
|
|
<i>int</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Debug level for the linters.
|
|
|
|
See <b>--debug-level</b> for accepted values.</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%;"><b>--force-delete-results-dir</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Activates: Do not refuse to
|
|
|
|
delete the results directory if it doesn't look like an
|
|
|
|
infer results directory. (Conversely:
|
|
|
|
<b>--no-force-delete-results-dir</b>)</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;"><b>--help</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Show this manual</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;"><b>--help-format</b> <i>{ auto
|
|
|
|
| groff | pager | plain }</i></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Show this help in the specified
|
|
|
|
format. <b>auto</b> sets the format to <b>plain</b> if the
|
|
|
|
environment variable <b>TERM</b> is "dumb" or
|
|
|
|
undefined, and to <b>pager</b> otherwise.</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%;"><b>--help-full</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">Show this manual with all
|
|
|
|
internal options in the INTERNAL OPTIONS section</p>
|
|
|
|
|
|
|
|
<h2>ENVIRONMENT
|
|
|
|
<a name="ENVIRONMENT"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>INFER_ARGS</b>,
|
|
|
|
<b>INFERCONFIG</b>, <b>INFER_STRICT_MODE</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">See the ENVIRONMENT section in
|
|
|
|
the manual of <b>infer</b>(1).</p>
|
|
|
|
|
|
|
|
<h2>FILES
|
|
|
|
<a name="FILES"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>.inferconfig</b></p>
|
|
|
|
|
|
|
|
<p style="margin-left:17%;">See the FILES section in the
|
|
|
|
manual of <b>infer</b>(1).</p>
|
|
|
|
|
|
|
|
<h2>EXAMPLES
|
|
|
|
<a name="EXAMPLES"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>cmake</b>(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:</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">mkdir build
|
|
|
|
&& cd build <br>
|
|
|
|
infer compile -- cmake .. <br>
|
|
|
|
infer capture -- make</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">The same
|
|
|
|
solution can be used for projects whose
|
|
|
|
"./configure" script hardcodes the paths to the
|
|
|
|
compilers, for instance:</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">infer compile
|
|
|
|
-- ./configure <br>
|
|
|
|
infer capture -- make</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">Another
|
|
|
|
solution for CMake projects is to use CMake's compilation
|
|
|
|
databases, for instance:</p>
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em">mkdir build
|
|
|
|
&& cd build <br>
|
|
|
|
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 .. <br>
|
|
|
|
infer capture --compilation-database
|
|
|
|
compile_commands.json</p>
|
|
|
|
|
|
|
|
<h2>SEE ALSO
|
|
|
|
<a name="SEE ALSO"></a>
|
|
|
|
</h2>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<p style="margin-left:11%; margin-top: 1em"><b>infer-capture</b>(1)</p>
|
|
|
|
<hr>
|
|
|
|
</body>
|
|
|
|
</html>
|