compilation_database_dir
- path to the directory containing compile_commands.json
output_directory
- path to the directory where PlantUML diagrams will be generateddiagrams
- the map of diagrams to be generated, each diagram name is provided as the key of the diagram YAML nodedebug_mode
- add inline debug information in the generated diagramsadd_compile_flags
- add compile flags to all compilation database entriesremove_compile_flags
- remove compile flags from all compilation database entriesquery_driver
- name or path to compiler driver, which should be queried for system include paths (e.g. arm-none-eabi-g++)type
- type of diagram, one of [class
, sequence
, package
, include
]glob
- list of glob patterns to match source code files for analysisinclude_relations_also_as_members
- when set to false
, class members for relationships are rendered in UML are skipped from class definition (default: true
)generate_method_arguments
- determines whether the class diagrams methods contain full arguments (full
), are abbreviated (abbreviated
) or skipped (none
)generate_concept_requirements
- determines whether concept requirements are rendered in the diagram (default: true
)using_namespace
- similar to C++ using namespace
, a A::B
value here will render a class A::B::C::MyClass
in the diagram as C::MyClass
, at most 1 value is supportedgenerate_packages
- whether or not the class diagram should contain packages generated from namespaces or subdirectoriespackage_type
- determines how the packages are inferred: namespace
- use C++ namespaces, directory
- use project's directory structureinclude
- definition of inclusion patterns:namespaces
- list of namespaces to includerelationships
- list of relationships to includeelements
- list of elements, i.e. specific classes, enums, templates to includeelement_types
- list of element types e.g. enum
, class
, concept
access
- list of visibility scopes to include (e.g. private
)subclasses
- include only subclasses of specified classes (and themselves)specializations
- include all specializations or instantiations of a given templatedependants
- include all classes, which depend on the specified classdependencies
- include all classes, which are dependencies of the specified classcontext
- include only entities in direct relationship with specified classesexclude
- definition of exclusion patterns:namespaces
- list of namespaces to excluderelationships
- list of relationships to excludeelements
- list of elements, i.e. specific classes, enums, templates to excludeelement_types
- list of element types e.g. enum
, class
, concept
access
- list of visibility scopes to exclude (e.g. private
)subclasses
- exclude subclasses of specified classes (and themselves)specializations
- exclude all specializations or instantiations of a given templatedependants
- exclude all classes, which depend on the specified classdependencies
- exclude all classes, which are dependencies of the specified classcontext
- exclude only entities in direct relationship with specified classeslayout
- add layout hints for entities (classes, packages)plantuml
- verbatim PlantUML directives which should be added to a diagrambefore
- list of directives which will be added before the generated diagramafter
- list of directives which will be added after the generated diagrammermaid
- verbatim MermaidJS directives which should be added to a diagrambefore
- list of directives which will be added before the generated diagramafter
- list of directives which will be added after the generated diagramIf -c,--config
option is not provided, clang-uml
will try to open file .clang-uml
in the current directory and fail if it doesn't exist.
With -c,--config
option pointing to a valid .clang-uml
file path, the file configuration will be loaded from that file.
Furthermore, when the value of -c,--config
option is -
- the entire config will be read from stdin
, which can be useful for scripting and generating config Yaml documents on the fly.
By default, all paths specified in the configuration file, including:
glob
output_directory
compilation_database_dir
paths
filterare relative to the parent directory of the configuration file. This can be changed in the following ways:
relative_to
option in the configuration file--paths-relative-to-pwd
command line option, in which case all paths will be relative to the directory where clang-uml
is executed (this only makes sense for automation where clang-uml
is executed from the same location relative to the project directory