infer-compile(1)

πŸ“¦ version 1.3.0, in nixpkgs unstable

πŸ’… infer-compile(1) β€” like, the Infer Project Compilation girlies ✨

okay so bestie, welcome to infer-compile(1) β€” that's the manpage name AND the manual name, we're keeping it cute and official up top πŸŽ€ This one's from the Infer Project Compilation corner of the universe and she's here to help you compile stuff from inside the infer environment. slay.


🌸 NAME 🌸

infer-compile β€” compile your project from within the infer environment, no cap πŸ’–


✨ SYNOPSIS ✨

infer compile -- [compile command]

that's it. that's the whole vibe check. the -- is doing main character work, don't leave her out 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the tea β˜•: infer-compile intercepts your compilation commands similarly to infer-capture β€” like, same energy, same interception moment β€” BUT it just… runs them. straight up executes the compilation commands and does not perform any translation of the source files. none. zero. not a single line 🚫✨

which, lowkey, makes it super useful for configuring build systems or for debugging purposes. it's giving "I'm just here to make sure the compiler paths are right, bestie" vibes πŸ’β€β™€οΈ


πŸ”₯ OPTIONS πŸ”₯

  • --debug, -g β€” turns on Debug mode and honestly she does the MOST. she also sets --debug-level 2, --developer-mode, --print-buckets, --print-types, --reports-include-ml-loc, --no-only-cheap-debug, --trace-error, and --write-html all at once. iconic behavior, truly. (Conversely: --no-debug | -G) πŸ’€
  • --debug-level level β€” your debug level, bestie. this one sets --bo-debug level, --debug-level-analysis level, and --debug-level-capture level. the accepted levels are:
    • 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 the accepted values πŸ‘€
  • --debug-level-capture int β€” debug level for the capture. again, see --debug-level for accepted values πŸŽ€
  • --debug-level-report int β€” debug level for the report. yes, same deal, see --debug-level 🌸
  • --force-delete-results-dir β€” activates: do not refuse to delete the results directory if it doesn't look like an infer results directory. i.e. she'll delete it even if it's not giving infer results dir, periodt. (Conversely: --no-force-delete-results-dir) ⚠️
  • --help β€” show this manual, bestie. the whole thing. 🫢
  • --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. she reads the room πŸ’…
  • --help-full β€” show this manual with all the internal options in the INTERNAL OPTIONS section. the director's cut, if you will πŸ‘‘

🌈 ENVIRONMENT 🌈

  • INFER_ARGS, INFERCONFIG, INFER_STRICT_MODE β€” see the ENVIRONMENT section in the manual of infer(1). go read it, i'll wait 🧚

πŸ“ FILES πŸ“

  • .inferconfig β€” see the FILES section in the manual of infer(1). same page, same vibe, go look πŸ’œ

πŸ‘‘ EXAMPLES πŸ‘‘

okay so this is where it gets juicy 😭 cmake(1) hardcodes the absolute paths to the compiler inside the Makefiles it generates, which defeats the later capture of compilation commands by infer. rude, honestly. so 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

three options, all valid, pick your fighter πŸ”₯


πŸ’œ SEE ALSO πŸ’œ


ngl bestie, if you made it this far you're basically a build systems expert now. mwah 🫢✨

v1.3.0-unknown Β· 2026-10-27 β€” that's the version and the date, and that's the whole page, bestie πŸŒΈπŸ’– slay and goodbye! πŸŽ€

πŸ“¦ where this page comes from