Я пытаюсь нарисовать график зависимостей между заголовочными файлами C, используя graphviz.
По сути, я делаю запись всех включенных #include и условий (я имею в виду условия #if). Если файл включает другой файл, он становится его отцом на графике, а потенциальным условием является метка края.
Я получаю довольно большой график. Проблема связана с метками ребер, которые всегда горизонтальны (вы не можете это изменить) и всегда кажутся выровненными по левому краю (я пробовал labelloc и labeljust, но это ничего не меняет. Какой правильный путь к центру метка одного края.
Чтобы избежать этой проблемы, я пытался отображать условия как узлы. Если Ah включает Bh при условии ANSI, есть ссылка от Ah до ANSI, а затем от ANSI до Bh. Это выглядит нормально, но проблема в том, что если Ch включает Dh при том же условии, я бы увидел ссылку от Ah до ANSI один от Ch до ANSI; один от ANSI до B.h и один от ANSI до D.h. Проблема в том, что я не знаю, является ли A.h или C.h включением B.h. Есть ли способ указать что-то вроде прохождения через узлы (ссылка от A.h до B.h, которая идет под ANSI, может усиливать прозрачность.)