From 21cb9be0342b9dcf19c0a991b2f2bd5e8f79e69a Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Sun, 10 Apr 2022 23:06:01 +0200 Subject: [PATCH] Added clang-uml include diagram config --- .clang-uml | 4 ++-- src/main.cc | 16 ++++++++++++++++ uml/include_diagram.yml | 11 +++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 uml/include_diagram.yml diff --git a/.clang-uml b/.clang-uml index af55e480..8ac1a229 100644 --- a/.clang-uml +++ b/.clang-uml @@ -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 diff --git a/src/main.cc b/src/main.cc index d7a4d1c8..a4238119 100644 --- a/src/main.cc +++ b/src/main.cc @@ -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), *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(db, diagram->name, + dynamic_cast(*diagram), verbose); + + ofs << clanguml::include_diagram::generators::plantuml::generator( + dynamic_cast(*diagram), *model); + } LOG_INFO("Written {} diagram to {}", name, path.string()); diff --git a/uml/include_diagram.yml b/uml/include_diagram.yml new file mode 100644 index 00000000..d7a686db --- /dev/null +++ b/uml/include_diagram.yml @@ -0,0 +1,11 @@ +type: include +glob: + - src/**/*.h + - src/**/*.cc +relative_to: . +include: + paths: + - src +plantuml: + before: + - "title clang-uml include graph diagram" \ No newline at end of file