---
name: "genreflex"
section: "1"
platform: "linux"
package: "libroot-core-dev"
version: "5.34.19+dfsg-1.2"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/genreflex"
---

# genreflex(1)

Generates the LCG dictionary file for each header file

## NAME

genreflex - Generates the LCG dictionary file for each header file

## SYNOPSIS

**genreflex** *headerfile1.h* \[*headerfile2.h*\] \[*options*\] \[*preprocesor options*\]

## DESCRIPTION

Generates the LCG dictionary file for each header file

## OPTIONS

- **-s** *file*, **--selection\_file=***file*

  Class selection file to specify for which classes the dictionary  will be generated Format (XML):

  ```
  <lcgdict>
    [<selection>]
      <class [name="classname"] [pattern="wildname"]
             [file_name="filename"] [file_pattern="wildname"]
             [id="xxxx"] [type="vector"]/>
      <class name="classname" >
        <field name="m_transient" transient="true"/>
        <field name="m_anothertransient" transient="true"/>
        <properties prop1="value1" [prop2="value2"]/>
      </class>
      <function [name="funcname"] [pattern="wildname"] />
      <enum [name="enumname"] [patter="wildname"] />
      <variable [name="varname"] [patter="wildname"] />
    [</selection>]
    <exclusion>
      <class [name="classname"] [pattern="wildname"]>
        <method name="unwanted" />
      </class>
    </exclusion>
    ...
  </lcgdict>
  ```

  See also the section  **SELECTION FILE SYNTAX** below.

- **-o** *file*, **--output** *file*

  Output file name. If an existing directory is specified instead of a file, then a filename will be build using the name of the input file and will be placed in the given directory. \<headerfile\>\_rflx.cpp

- **--pool**

  Generate minimal dictionary required for POOL persistence

- **--deep**

  Generate dictionary for all dependend classes

- **--split** (OBSOLETE)

  Generate separate file for stub functions. Option sometimes needed on Windows.

- **--reflex** (OBSOLETE)

  Generate Reflex dictionaries.

- **--comments**

  Add end-of-line comments in data and functions members as a property called "comment"

- **--no\_membertypedefs**

  Disable the definition of class member **typedefs**

- **--fail\_on\_warnings**

  The genreflex command fails (retuns the value 1) if any warning message is issued

- **--gccxmlpath=***path*

  Path path where the [**gccxml**(1)](/gccxml/1.md) tool is installed. If not defined the standard PATH environ variable is used

- **-c** *file,* **--capabilities=***file*

  Generate the capabilities file to be used by the SEAL Plugin Manager. This file lists the names of all classes for which the reflection is formation is provided.

- **--rootmap=***file*

  Generate the rootmap file to be used by ROOT/CINT. This file lists the names of all classes for which the reflection is formation is provided.

- **--rootmap-lib=***library*

  Library name for the rootmap file.

- **--debug**

  Print extra debug information while processing. Keep intermediate files

- **--quiet**

  No not print informational messages

- **-h**, **--help**

  Print help

Try "genreflex **--help**" for more information.

## SELECTION FILE SYNTAX

### \<lcgdict\>

- Sub elements:

  **\<selection\> \<exclusion\> \<class\> \<function\>**

- Attributes:

  none

The root element of the xml file. It has to be present.

### \<selection\>

- Sub elements:

  **\<class\> \<function\>**

- Attributes:

  none

The selection element is only mandatory if the **\<exclusion\>** element is used in the same file. Otherwise all sub-elements of **\<lcgdict\>** are supposed to be included in the dictionary.

### \<exclusion\>

- Sub elements:

  **\<class\> \<function\>**

- Attributes:

  none

If a  **\<selection\>** element is present it is also possible to exclude types following the same patterns as for selection

### \<class\>

- Sub elements:

  **\<field\> \<properties\> \<method\>**

- Attributes:

  - *name*

    The exact name of the class to be filtered *pattern* A pattern matching a set of classes

  - *file\_name*

    The exact file name to be filtered. All classes contained in the file will be selected

  - *file\_pattern*

    A pattern matching a set of files

  - *id*

    The class ID (used for POOL persistence)

  - *type*

    The class type (used for POOL persistence)

All classes matching the patterns or names in the attributes will be selected. The  *name*, *pattern*, *file\_name*, and *file\_pattern* attributes are mutual exclusive.

### \<function\>

- Sub elements:

  none

- Attributes:

  - *name*

    The exact name of the function

  - *pattern*

    A pattern matching a set of functions

All function matching the attributes of the function element will be selected and dictionaries will be created for them. The  *name*and*pattern* attributes are mutual exclusive.

### \<field\>

- Sub elements:

  none

- Attributes:

  - *name*

    The exact name of the field

  - *transient*

    If set to true a property (transient/true) will be set for this member (used for POOL persistence)

The  **\<field\>** element is mainly used for POOL persistence to mark if some of the data members of a class shall be skipped when the class is written to a persistent medium

### \<method\>

- Sub elements:

  none

- Attributes:

  - *name*

  The name of the method to be excluded

The  **\<method\>** element is used to exclude the dictionary generation from classes which match the given attributes.

## SEE ALSO

[*root*(1)](/root/1.md), [*rootcint*(1)](/rootcint/1.md), [*gccxml*(1)](/gccxml/1.md)

See also the **ROOT** webpages: *http://root.cern.ch* ⟨http://root.cern.ch⟩

## ORIGINAL AUTHORS

The ROOT team (see web page above):

**Rene Brun** and **Fons Rademakers**

## COPYRIGHT

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

## AUTHOR

This manual page was written by Christian Holm Christensen \<cholm@nbi.dk\>, for the Debian GNU/Linux system (but may be used by others).
