rootcling(1)

πŸ“¦
version 6.40.04 Β· 2 versions
, in arch rolling, epel 10, epel 9, fedora 43, fedora 44, nixos 26.05

πŸŽ€ rootcling, but make it make sense πŸŽ€

okay bestie, sit down, hydrate, because we're reading rootcling(1) from the General Commands Manual and honestly? it's giving dictionary-factory energy. ✨


✨ SYNOPSIS ✨

usage: rootcling [-f F] [-v V] [-v0 V0] [-v1 V1] [-v2 V2] [-v3 V3] [-v4 V4]
                 [-m M] [-rmf RMF] [-rml RML] [-split SPLIT] [-s S]
                 [-multiDict MULTIDICT] [-inlineInputHeader INLINEINPUTHEADER]
                 [-interpreteronly INTERPRETERONLY]
                 [-noIncludePaths NOINCLUDEPATHS] [-excludePath EXCLUDEPATH]
                 [--lib-list-prefix LIB_LIST_PREFIX]

πŸ’– DESCRIPTION πŸ’–

So like. This program generates the dictionaries that you need for performing I/O of classes. that's it, that's the whole job description. it's a build-tool diva and it ate. πŸ’…


🌸 OPTIONS 🌸

  • -f β€” overwrite an existing output file. slay, out with the old.
bestie, the output file must have the .cxx, .C, .cpp, .cc or .cp extension. no extension, no service. 🚫
  • -v β€” display all messages. yes, all of them. the full yap.
  • -v0 β€” display no messages at all πŸ™ˆ
  • -v1 β€” display only error messages
  • -v2 β€” display error and warning messages (default). the factory setting, the vanilla, the baseline.
  • -v3 β€” display error, warning and note messages
  • -v4 β€” display all messages
  • -m β€” specify absolute or relative path of a Clang pcm file to be loaded.

the pcm file (module) produced by this invocation of rootcling will not include any of the declarations already included in the pcm files loaded via -m. also? there can be more than one -m. go off, stack them. 🫢

  • -rmf β€” rootmap file name.

this is the name of the rootmap file. and lowkey important: for ROOT to actually pick it up, it must have a .rootmap extension. iykyk.

  • -rml β€” rootmap library name.

specify the name of the library which contains the autoload keys. you can drop this switch multiple times to autoload several libraries in presence of a particular key. iconic multitasking behavior. ✨

  • -split β€” split the dictionary.

it splits the dictionary in two, putting the ClassDef functions in a separate file. two files, one destiny. πŸ¦‹

  • -s β€” target library name.

the flag -s must be followed by the name of the library that will contain the object file corresponding to the dictionary produced by this invocation of rootcling.

this name takes priority over the one specified for the rootmapfile.

and it influences the name of the created pcm:

  1. if it is not specified, the pcm is called libINPUTHEADER_rdict.pcm
  2. if it is specified, the pcm is called libTARGETLIBRARY_rdict.pcm
    • any "liblib" occurence is transformed in the expected "lib"
  3. if this is specified in conjunction with --multiDict, the output is
    • libTARGETLIBRARY_DICTIONARY_rdict.pcm
  • -multiDict β€” enable support for multiple pcms in one library.

needs the -s flag. see its documentation, it's literally right up there. πŸ‘†

  • -inlineInputHeader β€” add the argument header to the code of the dictionary.

this allows the header to be inlined within the dictionary. cozy. πŸŽ€

  • -interpreteronly β€” no IO information in the dictionary.
  • -noIncludePaths β€” do not store the headers' directories in the dictionary.

instead, rely on the environment variable $ROOT_INCLUDE_PATH at runtime. ✨

  • -excludePath β€” specify a path to be excluded from the include paths specified for building this dictionary.
  • --lib-list-prefix β€” specify libraries needed by the header files parsed.

this feature is used by ACliC (the automatic library generator).

rootcling will read the content of xxx.in for a list of rootmap files (see rlibmap). rootcling will read these files and use them to deduce a list of libraries that are needed to properly link and load this dictionary. this list of libraries is saved in the first line of the file xxx.out; the remaining lines contains the list of classes for which this run of rootcling produced a dictionary.


okay that's the whole page, no notes, you understood it perfectly, i'm so proud of you πŸ₯ΉπŸ’œ

signing off: rootcling(1), out here in the General Commands Manual β€” mwah, periodt. 🌈⭐

πŸ“¦ where this page comes from