Integration.Driver
entry points for top-level functionalities such as capture under various build systems, analysis, and reporting
type mode =
| Analyze
| Ant of {
}
| BuckClangFlavor of {
}
| BuckCompilationDB of {
deps : IBase.BuckMode.clang_compilation_db_deps;
prog : string;
args : string list;
}
| BuckErlang of {
}
| BuckGenrule of {
}
| BuckJavaFlavor of {
}
| BxlClang of {
}
| BxlJava of {
}
| Clang of {
compiler : Clang.compiler;
prog : string;
args : string list;
}
| ClangCompilationDB of {
}
| Gradle of {
}
| Javac of {
compiler : Javac.compiler;
prog : string;
args : string list;
}
| Kotlinc of {
}
| JsonSIL of {
}
| Maven of {
}
| NdkBuild of {
}
| Python of {
}
| PythonBytecode of {
}
| Rebar3 of {
}
| Erlc of {
}
| Hackc of {
}
| Textual of {
}
| XcodeBuild of {
}
| XcodeXcpretty of {
}
based on the build_system and options passed to infer, we run in different driver modes
val is_analyze_mode : mode -> bool
val is_compatible_with_textual_generation : mode -> bool
val mode_from_command_line : mode IStdlib.IStd.Lazy.t
driver mode computed from the command-line arguments and settings in Config
val run_prologue : mode -> unit
prepare the environment for running the given mode
val capture : changed_files:IBase.SourceFile.Set.t option -> mode -> unit
run the capture for the given mode
val analyze_and_report :
changed_files:IBase.SourceFile.Set.t option ->
mode ->
unit
run the analysis for the given mode