77f24b5360f04b8d8300badc2a1dc195390d8abc
clang-uml - UML diagram generator based on Clang and PlantUML
clang-uml is an automatic PlantUML class and sequence diagram generator, driven by YAML configuration files. The main idea behind the project is to easily maintain up-to-date diagrams within a code-base. The configuration file or files for clang-uml define the type and scope of each diagram.
Rationale
Installation
TODO
Usage
Invocation
Configuration file format and examples
Class diagrams
Default mappings
| UML | C++ |
|---|---|
| Inheritance (A is kind of B) | Public, protected or private inheritance |
| Association (A knows of B) | Class A has a pointer or a reference to class B, or any container with a pointer or reference to B |
| Dependency (A uses B) | Any method of class A has argument of type B |
| Aggregation (A has B) | Class A has a field of type B or an owning pointer of type B |
| Composition (A has B) | Class A has a field of type container of B |
| Template (T specializes A) | Class A has a template parameter T |
| Nesting (A has inner class B) | Class B is an inner class of A |
Inline directives
Building
Ubuntu
To build under Ubuntu follow the following steps:
sudo apt-get install cmake build-essential libyaml-cpp-dev libspdlog-dev libclang-11-dev libclang-cpp11-dev
git clone https://github.com/bkryza/clang-uml
cd clang-uml
make release # or make debug for debug builds
LICENSE
Copyright 2021-present Bartek Kryza <bkryza@gmail.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Languages
C++
96.9%
CMake
1%
Python
0.7%
Makefile
0.7%
Shell
0.4%
Other
0.1%