<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>InferModules__Driver (infer.InferModules__Driver)</title><link rel="stylesheet" href="../../odoc.css"/><meta charset="utf-8"/><meta name="generator" content="odoc %%VERSION%%"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><div class="content"><header><nav><a href="../index.html">Up</a> – <a href="../index.html">infer</a> &#x00BB; InferModules__Driver</nav><h1>Module <code>InferModules__Driver</code></h1><p>entry points for top-level functionalities such as capture under various build systems, analysis, and reporting</p></header><dl><dt class="spec type" id="type-mode"><a href="#type-mode" class="anchor"></a><code><span class="keyword">type</span> mode</code><code> = </code><table class="variant"><tr id="type-mode.Analyze" class="anchored"><td class="def constructor"><a href="#type-mode.Analyze" class="anchor"></a><code>| </code><code><span class="constructor">Analyze</span></code></td></tr><tr id="type-mode.BuckGenrule" class="anchored"><td class="def constructor"><a href="#type-mode.BuckGenrule" class="anchor"></a><code>| </code><code><span class="constructor">BuckGenrule</span> <span class="keyword">of</span> string</code></td></tr><tr id="type-mode.BuckGenruleMaster" class="anchored"><td class="def constructor"><a href="#type-mode.BuckGenruleMaster" class="anchor"></a><code>| </code><code><span class="constructor">BuckGenruleMaster</span> <span class="keyword">of</span> <span>string list</span></code></td></tr><tr id="type-mode.BuckCompilationDB" class="anchored"><td class="def constructor"><a href="#type-mode.BuckCompilationDB" class="anchor"></a><code>| </code><code><span class="constructor">BuckCompilationDB</span> <span class="keyword">of</span> string * <span>string list</span></code></td></tr><tr id="type-mode.Clang" class="anchored"><td class="def constructor"><a href="#type-mode.Clang" class="anchor"></a><code>| </code><code><span class="constructor">Clang</span> <span class="keyword">of</span> <a href="../InferModules/Clang/index.html#type-compiler">InferModules.Clang.compiler</a> * string * <span>string list</span></code></td></tr><tr id="type-mode.ClangCompilationDB" class="anchored"><td class="def constructor"><a href="#type-mode.ClangCompilationDB" class="anchor"></a><code>| </code><code><span class="constructor">ClangCompilationDB</span> <span class="keyword">of</span> <span><span>[ <span>`Escaped of string</span> <span><span>| `Raw</span> of string</span> ]</span> list</span></code></td></tr><tr id="type-mode.Javac" class="anchored"><td class="def constructor"><a href="#type-mode.Javac" class="anchor"></a><code>| </code><code><span class="constructor">Javac</span> <span class="keyword">of</span> <a href="../InferModules/Javac/index.html#type-compiler">InferModules.Javac.compiler</a> * string * <span>string list</span></code></td></tr><tr id="type-mode.Maven" class="anchored"><td class="def constructor"><a href="#type-mode.Maven" class="anchor"></a><code>| </code><code><span class="constructor">Maven</span> <span class="keyword">of</span> string * <span>string list</span></code></td></tr><tr id="type-mode.PythonCapture" class="anchored"><td class="def constructor"><a href="#type-mode.PythonCapture" class="anchor"></a><code>| </code><code><span class="constructor">PythonCapture</span> <span class="keyword">of</span> <a href="../../InferBase/InferBase/Config/index.html#type-build_system">InferBase.Config.build_system</a> * <span>string list</span></code></td></tr><tr id="type-mode.XcodeXcpretty" class="anchored"><td class="def constructor"><a href="#type-mode.XcodeXcpretty" class="anchor"></a><code>| </code><code><span class="constructor">XcodeXcpretty</span> <span class="keyword">of</span> string * <span>string list</span></code></td></tr></table></dt><dd><p>based on the build_system and options passed to infer, we run in different driver modes</p></dd></dl><div><div class="spec include"><div class="doc"><dl><dt class="spec value" id="val-compare_mode"><a href="#val-compare_mode" class="anchor"></a><code><span class="keyword">val</span> compare_mode : <a href="index.html#type-mode">mode</a> <span>&#45;&gt;</span> <a href="index.html#type-mode">mode</a> <span>&#45;&gt;</span> int</code></dt></dl></div></div></div><dl><dt class="spec value" id="val-equal_mode"><a href="#val-equal_mode" class="anchor"></a><code><span class="keyword">val</span> equal_mode : <a href="index.html#type-mode">mode</a> <span>&#45;&gt;</span> <a href="index.html#type-mode">mode</a> <span>&#45;&gt;</span> bool</code></dt><dt class="spec value" id="val-mode_from_command_line"><a href="#val-mode_from_command_line" class="anchor"></a><code><span class="keyword">val</span> mode_from_command_line : <span><a href="index.html#type-mode">mode</a> <a href="../../InferStdlib/InferStdlib/index.html#module-IStd">InferStdlib.IStd</a>.Lazy.t</span></code></dt><dd><p>driver mode computed from the command-line arguments and settings in Config</p></dd></dl><dl><dt class="spec value" id="val-run_prologue"><a href="#val-run_prologue" class="anchor"></a><code><span class="keyword">val</span> run_prologue : <a href="index.html#type-mode">mode</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>prepare the environment for running the given mode</p></dd></dl><dl><dt class="spec value" id="val-capture"><a href="#val-capture" class="anchor"></a><code><span class="keyword">val</span> capture : <span>changed_files:<span><a href="../../InferBase/InferBase__SourceFile/index.html#module-Set">InferBase.SourceFile.Set</a>.t option</span></span> <span>&#45;&gt;</span> <a href="index.html#type-mode">mode</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>run the capture for the given mode</p></dd></dl><dl><dt class="spec value" id="val-analyze_and_report"><a href="#val-analyze_and_report" class="anchor"></a><code><span class="keyword">val</span> analyze_and_report : <span>?&#8288;suppress_console_report:bool</span> <span>&#45;&gt;</span> <span>changed_files:<span><a href="../../InferBase/InferBase__SourceFile/index.html#module-Set">InferBase.SourceFile.Set</a>.t option</span></span> <span>&#45;&gt;</span> <a href="index.html#type-mode">mode</a> <span>&#45;&gt;</span> unit</code></dt><dd><p>run the analysis for the given mode</p></dd></dl><dl><dt class="spec value" id="val-run_epilogue"><a href="#val-run_epilogue" class="anchor"></a><code><span class="keyword">val</span> run_epilogue : unit <span>&#45;&gt;</span> unit</code></dt><dd><p>cleanup infer-out/ for Buck, generate stats, and generally post-process the results of a run</p></dd></dl><dl><dt class="spec value" id="val-read_config_changed_files"><a href="#val-read_config_changed_files" class="anchor"></a><code><span class="keyword">val</span> read_config_changed_files : unit <span>&#45;&gt;</span> <span><a href="../../InferBase/InferBase__SourceFile/index.html#module-Set">InferBase.SourceFile.Set</a>.t option</span></code></dt><dd><p>return the list of changed files as read from Config.changed_files_index and passed to SourceFile.changed_sources_from_changed_files</p></dd></dl></div></body></html>