FIND-ALL-SYMBOLS(1)

πŸ“¦ version 12.0.1, in ubuntu jammy

πŸ¦‹ NAME πŸ¦‹

find-all-symbols β€” it's the manual page for find-all-symbols 12, bestie πŸ’– literally what it says on the tin.


✨ DESCRIPTION ✨

Okay so here's the whole vibe. This is how you run it:

USAGE: find-all-symbols [options] <source0> [... <sourceN>]

And then the OPTIONS, which we're gonna go through one by one because I love you and I want you to actually understand this 🫢

🌸 Generic Options 🌸

The chill, universal ones, the ones every tool has, the group chat regulars:

  • --help β€” shows you all the available options πŸ’… (and if you want even more, there's --help-hidden, no cap)
  • --help-list β€” displays a straight-up list of the available options (and yeah, --help-list-hidden exists for even more of them πŸ‘€)
  • --version β€” displays the version of this program, iconic, no notes ✨

πŸŽ€ find_all_symbols options πŸŽ€

The ones that are actually specific to this tool, the main characters:

  • --extra-arg=<string> β€” an extra argument to append to the compiler command line 🌈
  • --extra-arg-before=<string> β€” an extra argument to prepend to the compiler command line (before, bestie, not after, they are NOT the same πŸ’€)
  • --merge-dir=<string> β€” the directory for merging symbols 🧚
  • --output-dir=<string> β€” the output directory for saving the results πŸ’Ύ
  • -p=<string> β€” Build path πŸ› οΈ

πŸ“ so like, what IS -p tho πŸ“

-p <build-path> is used to read a compile command database.

For example, it can be a CMake build directory in which a file named compile_commands.json exists β€” use the -DCMAKE_EXPORT_COMPILE_COMMANDS=ON CMake option to get this output, that's the lil trick that makes it appear ✨

When no build path is specified, a search for compile_commands.json will be attempted through all parent paths of the first input file.

See: https://clang.llvm.org/docs/HowToSetupToolingForLLVM.html for an example of setting up Clang Tooling on a source tree 🌳

πŸ¦‹ and the source files πŸ¦‹

<source0> ... β€” specify the paths of source files. These paths are looked up in the compile command database πŸ“š

  • If the path of a file is absolute, it needs to point into CMake's source tree.
  • If the path is relative, the current working directory needs to be in the CMake source tree, and the file must be in a subdirectory of the current working directory.
  • "./" prefixes in the relative files will be automatically removed, but the rest of a relative path must be a suffix of a path in the compile command database.
okay this relative-path thing is genuinely the part that eats people alive so read it twice, bestie 😭 the rules are strict and the tool will simply Not Help You if you get it wrong

πŸ’œ one more thing πŸ’œ

More help text...


and that's the whole page, mwah πŸ’… this was find-all-symbols 12, from February 2022, and it says it's a User Commands situation β€” so go forth, point it at your sources, and slay πŸ‘‘πŸ’–βœ¨

πŸ“¦ where this page comes from