# t40002 - Cyclic include graph diagram test case ## Config ```yaml compilation_database_dir: .. output_directory: diagrams diagrams: t40002_include: type: include # Provide the files to parse in order to look # for #include directives glob: - ../../tests/t40002/src/t40002.cc - ../../tests/t40002/src/lib1/lib1.cc - ../../tests/t40002/src/lib2/lib2.cc # Render the paths relative to this directory relative_to: ../../../tests/t40002 include: # Include only files belonging to these paths relative to relative_to paths: - . exclude: paths: # Exclude single header relative to relative_to - include/lib2/lib2_detail.h plantuml: before: - "' t40002 test include diagram" ``` ## Source code ## Generated PlantUML diagrams ![t40002_include](./t40002_include.svg "Cyclic include graph diagram test case") ## Generated Mermaid diagrams ![t40002_include](./t40002_include_mermaid.svg "Cyclic include graph diagram test case") ## Generated JSON models ```json { "diagram_type": "include", "elements": [ { "display_name": "src", "elements": [ { "display_name": "src/t40002.cc", "file_kind": "implementation", "id": "1489450289909741706", "name": "t40002.cc", "type": "file" }, { "display_name": "src/lib1", "elements": [ { "display_name": "src/lib1/lib1.cc", "file_kind": "implementation", "id": "1493913207373215402", "name": "lib1.cc", "type": "file" } ], "id": "1284742705549910910", "name": "lib1", "type": "folder" }, { "display_name": "src/lib2", "elements": [ { "display_name": "src/lib2/lib2.cc", "file_kind": "implementation", "id": "1761875020766116446", "name": "lib2.cc", "type": "file" } ], "id": "1397224709580110803", "name": "lib2", "type": "folder" } ], "id": "1387619747296316447", "name": "src", "type": "folder" }, { "display_name": "include", "elements": [ { "display_name": "include/lib1", "elements": [ { "display_name": "include/lib1/lib1.h", "file_kind": "header", "id": "2193549214042244690", "name": "lib1.h", "type": "file" } ], "id": "1687675335949018432", "name": "lib1", "type": "folder" }, { "display_name": "include/lib2", "elements": [ { "display_name": "include/lib2/lib2.h", "file_kind": "header", "id": "1969674835696841438", "name": "lib2.h", "type": "file" } ], "id": "1248530620501446930", "name": "lib2", "type": "folder" } ], "id": "989412417490706876", "name": "include", "type": "folder" } ], "metadata": { "clang_uml_version": "0.3.9-11-g4a19c8b", "llvm_version": "Ubuntu clang version 16.0.1 (++20230328073357+42d1b276f779-1~exp1~20230328073502.65)", "schema_version": 1 }, "name": "t40002_include", "relationships": [ { "destination": "2193549214042244690", "source": "1489450289909741706", "type": "association" }, { "destination": "1969674835696841438", "source": "1489450289909741706", "type": "association" }, { "destination": "2193549214042244690", "source": "1493913207373215402", "type": "association" }, { "destination": "1969674835696841438", "source": "1761875020766116446", "type": "association" }, { "destination": "1969674835696841438", "source": "2193549214042244690", "type": "association" } ] } ```