1.1 --- a/docs/tools/depgraph Sat May 01 23:51:50 2021 +0200
1.2 +++ b/docs/tools/depgraph Sun May 02 01:52:45 2021 +0200
1.3 @@ -20,6 +20,39 @@
1.4 fi
1.5 }
1.6
1.7 +# Filter library headers.
1.8 +
1.9 +filter_libraries()
1.10 +{
1.11 + grep -v '<l4\|<systypes\|<std\|<list>\|<map>\|<mutex>\|<condition_variable>'
1.12 +}
1.13 +
1.14 +# Select basenames in search result filenames.
1.15 +
1.16 +select_basenames()
1.17 +{
1.18 + sed 's/[^:]*\/\([^:]*\)/\1/'
1.19 +}
1.20 +
1.21 +# Colour nodes by source category.
1.22 +
1.23 +colour_sources()
1.24 +{
1.25 + sed '/files/s/$/ [style=filled,fillcolor="#ffdddd"]/' \
1.26 + | sed '/pipes/s/$/ [style=filled,fillcolor="#ddddff"]/' \
1.27 + | sed '/mapping/s/$/ [style=filled,fillcolor="#ddffdd"]/' \
1.28 + | sed '/pages/s/$/ [style=filled,fillcolor="#ddffff"]/' \
1.29 + | sed '/libmem/s/$/ [style=filled,fillcolor="#dddddd"]/'
1.30 +}
1.31 +
1.32 +# Remove this directory as prefix.
1.33 +
1.34 +remove_prefix()
1.35 +{
1.36 + QUOTED=`echo "$PKGDIR" | sed 's/\//\\\\\//g'`
1.37 + sed "s/^${QUOTED}\///"
1.38 +}
1.39 +
1.40
1.41
1.42 # Main program.
1.43 @@ -44,6 +77,18 @@
1.44
1.45 EOF
1.46
1.47 +# Generate nodes using source filenames to permit categorisation-based node
1.48 +# colouring.
1.49 +
1.50 + find $SOURCES -maxdepth 4 -name '*.cc' \
1.51 +| filter_interfaces \
1.52 +| remove_prefix \
1.53 +| colour_sources \
1.54 +| select_basenames \
1.55 +| sed 's/\.cc//' \
1.56 +| sed 's/$/;/' \
1.57 +>> "$DOTFILE"
1.58 +
1.59 # Generate header file relationships.
1.60 # Find header files.
1.61 # Obtain include statements.
1.62 @@ -55,8 +100,8 @@
1.63 find $SOURCES -maxdepth 4 -name '*.h' \
1.64 | xargs -I{} grep -H include '{}' \
1.65 | filter_interfaces \
1.66 -| grep -v '<l4\|<systypes\|<std\|<list>\|<map>\|<mutex>\|<condition_variable>' \
1.67 -| sed 's/[^:]*\/\([^:]*\)/\1/' \
1.68 +| filter_libraries \
1.69 +| select_basenames \
1.70 | sed 's/<.*\///g;s/<//g;s/>//g;s/"//g;s/\.h//g;s/:#include / -> /;s/^/ /;s/$/;/' \
1.71 >> "$DOTFILE"
1.72