Added clang-uml include diagram config

This commit is contained in:
Bartek Kryza
2022-04-10 23:06:01 +02:00
parent 3ed26ab6bb
commit 21cb9be034
3 changed files with 29 additions and 2 deletions

View File

@@ -18,5 +18,5 @@ diagrams:
include!: uml/sequence_model_class_diagram.yml
package_model_class:
include!: uml/package_model_class_diagram.yml
diagram_model_class:
include!: uml/diagram_model_class_diagram.yml
include_graph:
include!: uml/include_diagram.yml

View File

@@ -19,6 +19,7 @@
#include "class_diagram/generators/plantuml/class_diagram_generator.h"
#include "config/config.h"
#include "cx/compilation_database.h"
#include "include_diagram/generators/plantuml/include_diagram_generator.h"
#include "package_diagram/generators/plantuml/package_diagram_generator.h"
#include "sequence_diagram/generators/plantuml/sequence_diagram_generator.h"
@@ -133,6 +134,7 @@ void generate_diagram(const std::string &od, const std::string &name,
{
using clanguml::config::class_diagram;
using clanguml::config::diagram_type;
using clanguml::config::include_diagram;
using clanguml::config::package_diagram;
using clanguml::config::sequence_diagram;
@@ -183,6 +185,20 @@ void generate_diagram(const std::string &od, const std::string &name,
ofs << clanguml::package_diagram::generators::plantuml::generator(
dynamic_cast<diagram_config &>(*diagram), *model);
}
else if (diagram->type() == diagram_type::include_diagram) {
using diagram_config = include_diagram;
using diagram_model = clanguml::include_diagram::model::diagram;
using diagram_visitor =
clanguml::include_diagram::visitor::translation_unit_visitor;
auto model =
clanguml::common::generators::plantuml::generate<diagram_model,
diagram_config, diagram_visitor>(db, diagram->name,
dynamic_cast<diagram_config &>(*diagram), verbose);
ofs << clanguml::include_diagram::generators::plantuml::generator(
dynamic_cast<diagram_config &>(*diagram), *model);
}
LOG_INFO("Written {} diagram to {}", name, path.string());

11
uml/include_diagram.yml Normal file
View File

@@ -0,0 +1,11 @@
type: include
glob:
- src/**/*.h
- src/**/*.cc
relative_to: .
include:
paths:
- src
plantuml:
before:
- "title clang-uml include graph diagram"