NAME
       infer-capture - capture source files for later analysis

SYNOPSIS
       infer capture --buck-java [options] -- buck ...
       infer capture --buck-clang [options] -- buck ...
       infer capture --buck-compilation-database [no-]deps [options] -- buck ...
       infer capture [options] --compilation-database file
       infer capture [options] --compilation-database-escaped file
       infer capture [options] -- gradle/gradlew ...
       infer capture [options] -- javac ...
       infer capture [options] -- make/clang/gcc ...
       infer capture [options] -- mvn/mvnw ...
       infer capture [options] -- ndk-build ...
       infer capture [--no-xcpretty] [options] -- xcodebuild ...


DESCRIPTION
       Capture the build command or compilation database specified on the
       command line: infer intercepts calls to the compiler to read source
       files, translate them into infer's intermediate representation, and
       store the result of the translation in the results directory.



OPTIONS
       --continue
           Activates: Continue the capture for the reactive analysis,
           increasing the changed files/procedures. (If a procedure was
           changed beforehand, keep the changed marking.) (Conversely:
           --no-continue)

       --debug,-g
           Activates: Debug mode (also sets --debug-level 2,
           --developer-mode, --print-buckets, --print-types,
           --reports-include-ml-loc, --no-only-cheap-debug, --trace-error,
           --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.

       --debug-level-capture int
           Debug level for the capture. See --debug-level for accepted
           values.

       --debug-level-linters int
           Debug level for the linters. See --debug-level for accepted
           values.

       --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)

       --force-integration command
           Proceed as if the first argument after -- was command. Possible
           values: ant, buck, gradle, gradlew, java, javac, cc, clang, gcc,
           clang++, c++, g++, make, configure, cmake, waf, mvn, mvnw,
           ndk-build, rebar3, xcodebuild.

       --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.

       --help-full
           Show this manual with all internal options in the INTERNAL OPTIONS
           section

       --load-average,-l float
           Do not start new parallel jobs if the load average is greater than
           that specified (Buck and make only)

       --print-logs
           Activates: Also log messages to stdout and stderr (Conversely:
           --no-print-logs)

       --progress-bar-style { auto | plain | multiline }
           Style of the progress bar. auto selects multiline if connected to
           a tty, otherwise plain.

       --project-root,-C dir
           Specify the root directory of the project

       --results-dir,-o dir
           Write results and internal files in the specified directory

       --skip-analysis-in-path +path_prefix_OCaml_regex
           Ignore files whose path matches the given prefix (can be specified
           multiple times)

       --sqlite-cache-size int
           SQLite cache size in pages (if positive) or kB (if negative),
           follows formal of corresponding SQLite PRAGMA.

       --sqlite-lock-timeout int
           Timeout for SQLite results database operations, in milliseconds.

       --sqlite-page-size int
           SQLite page size in bytes, must be a power of two between 512 and
           65536.

       --workspace path
           Specifies the root of the workspace, which is a directory
           containing --project-root. This can be needed if the capture phase
           is expected to require several different project roots, all
           relative to a common workspace. Usually a single project root is
           enough, though.

       --  Stop argument processing, use remaining arguments as a build
           command
BUCK OPTIONS
       --append-buck-flavors +string
           Additional Buck flavors to append to targets discovered by the
           --buck-compilation-database option.

       --buck-blacklist +regex
           Skip capture of files matched by the specified regular expression.
           Only the clang, non-compilation-database                Buck integration is supported, not Java.

       --buck-clang
           Activates: Buck integration for clang-based targets
           (C/C++/Objective-C/Objective-C++). (Conversely: --no-buck-clang)

       --buck-compilation-database { no-deps | deps }
           Buck integration using the compilation database, with or without
           dependencies. Only includes clang targets, as per Buck's
           #compilation-database flavor.

       --buck-compilation-database-depth int
           Depth of dependencies used by the --buck-compilation-database deps
           option. By default, all recursive dependencies are captured.

       --buck-java-flavor
           Activates: Buck integration for Java which uses the buck flavor
           #infer-java-capture instead of genrules like buck-java.
           (Conversely: --no-buck-java-flavor)

       --buck-java-flavor-suppress-config
           Activates: Suppress setting buck config values for the infer
           binary and its version in the buck-java-flavor integration.
           (Conversely: --no-buck-java-flavor-suppress-config)

       --buck-java-heap-size-gb int
           Explicitly set the size of the Java heap of Buck processes, in
           gigabytes.

       --buck-merge-all-deps
           Activates: Find and merge all infer dependencies produced by buck.
           Use this flag if infer doesn't find any files to analyze after a
           successful capture. Only valid for --buck-clang. (Conversely:
           --no-buck-merge-all-deps)

       --buck-targets-blacklist +regex
           Skip capture of buck targets matched by the specified regular
           expression. Only valid for --buck-compilation-database.

       --Xbuck +string
           Pass values as command-line arguments to invocations of `buck
           build`. Only valid for --buck-clang.

       --Xbuck-no-inline +string
           Pass values as command-line arguments to invocations of `buck
           build`, don't inline any args starting with '@'. Only valid for
           --buck-clang.

       --xcode-developer-dir XCODE_DEVELOPER_DIR
           Specify the path to Xcode developer directory, to use for Buck
           clang targets
CLANG LINTERS OPTIONS
       --debug-level-linters int
           Debug level for the linters. See --debug-level for accepted
           values.

       --no-default-linters
           Deactivates: Use the default linters for the analysis.
           (Conversely: --default-linters)

       --linter string
           From the linters available, only run this one linter. (Useful
           together with --linters-developer-mode)

       --linters-def-file +file
           Specify the file containing linters definition (e.g. 'linters.al')

       --linters-def-folder +dir
           Specify the folder containing linters files with extension .al

       --linters-developer-mode
           Activates: Debug mode for developing new linters. (Sets the
           analyzer to linters; also sets --debug, --debug-level-linters 2,
           --developer-mode, and unsets --allowed-failures and
           --default-linters. (Conversely: --no-linters-developer-mode)

       --linters-doc-url +string
           Specify custom documentation URL for some linter that overrides
           the default one. Useful if your project has specific ways of
           fixing a lint error that is not true in general or public info.
           Format: linter_name:doc_url.

       --linters-ignore-clang-failures
           Activates: Continue linting files even if some compilation fails.
           (Conversely: --no-linters-ignore-clang-failures)

       --linters-validate-syntax-only
           Activates: Validate syntax of AL files, then emit possible errors
           in JSON format to stdout (Conversely:
           --no-linters-validate-syntax-only)
CLANG OPTIONS
       --clang-biniou-file file
           Specify a file containing the AST of the program, in biniou
           format. Please note you still need to provide a compilation
           command.

       --clang-blacklisted-flags +string
           Clang flags to filter out

       --clang-blacklisted-flags-with-arg +string
           Clang flags (taking args) to filter out

       --clang-compound-literal-init-limit int
           Limit after which initialization of compound types (structs and
           arrays) is not done element by element but using a builtin
           function that each analysis has to model.

       --clang-yojson-file file
           Specify a file containing the AST of the program, in yojson
           format. Please note you still need to provide a compilation
           command.

       --compilation-database +path
           File that contain compilation commands (can be specified multiple
           times)

       --compilation-database-escaped +path
           File that contain compilation commands where all entries are
           escaped for the shell, eg coming from Xcode (can be specified
           multiple times)

       --no-cxx
           Deactivates: Analyze C++ methods (Conversely: --cxx)

       --dump-duplicate-symbols
           Activates: Dump all symbols with the same name that are defined in
           more than one file. (Conversely: --no-dump-duplicate-symbols)

       --frontend-tests
           Activates: Save filename.ext.test.dot with the cfg in dotty format
           for frontend tests (also sets --print-types) (Conversely:
           --no-frontend-tests)

       --headers
           Activates: Analyze code in header files (Conversely: --no-headers)

       --skip-non-capture-clang-commands
           Activates: Skip clang commands that Infer doesn't use to capture
           data (Conversely: --no-skip-non-capture-clang-commands)

       --skip-translation-headers +path_regex
           Ignore declarations in headers whose path matches the given OCaml
           regex from the start of the string during capture.

       --Xclang +string
           Pass values as command-line arguments to invocations of clang

       --xcpretty
           Activates: Infer will use xcpretty together with xcodebuild to
           analyze an iOS app. xcpretty just needs to be in the path, infer
           command is still just `infer -- <xcodebuild command>`.
           (Conversely: --no-xcpretty)
ERLANG OPTIONS
       --erlang-ast-dir dir
           Also load AST from all .json files in the given path. These .json
           files usually come from a previous run with --debug.

       --erlang-skip-rebar3
           Activates: Skip running rebar, to save time. It is useful together
           with --erlang-ast-dir. (Conversely: --no-erlang-skip-rebar3)
JAVA OPTIONS
       --bootclasspath string
           Specify the Java bootclasspath

       --capture-blacklist regex
           Skip capture of files matched by the specified OCaml regular
           expression (only supported by the javac integration for now).

       --dependencies
           Activates: Translate all the dependencies during the capture. The
           classes in the given jar file will be translated. No sources
           needed. (Conversely: --no-dependencies)

       --generated-classes path
           Specify where to load the generated class files

       --java-jar-compiler path
           Specify the Java compiler jar used to generate the bytecode

       --java-version int
           The version of Java being used. Set it to your Java version if mvn
           is failing.


ENVIRONMENT
       INFER_ARGS, INFERCONFIG, INFER_STRICT_MODE
           See the ENVIRONMENT section in the manual of infer(1).

FILES
       .inferconfig
           See the FILES section in the manual of infer(1).




SEE ALSO
       infer-analyze(1), infer-compile(1), infer-run(1)