compilation_database_dir - path to the directory containing compile_commands.jsonoutput_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++)user_data - arbitrary data that can be used in Jinja templatestype - 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, conceptaccess - 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, conceptaccess - 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 diagramgraphml - custom properties for GraphML outputnotes - object whose keys represent fully qualified diagram elements and values are lists of notes to be attached as nodes in the GraphML modelIf -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:
globoutput_directorycompilation_database_dirpaths 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