#!/usr/bin/env bash set -euo pipefail targets=(@PSC_TARGETS_SH@) edges=(@PSC_TARGET_EDGES_SH@) output_dir='@PSC_OUTPUT_DIR@' format='@PSC_FORMAT@' dot_exe='@PSC_DOT_EXECUTABLE@' mkdir -p "$output_dir" dot_file="$output_dir/radio_cmake_targets.dot" image_file="$output_dir/radio_cmake_targets.$format" { echo 'digraph "radio cmake_targets" {' echo 'rankdir=LR;' echo 'splines=ortho;' echo 'concentrate=true;' echo 'forcelabels=true;' echo 'graph [fontname="Consolas", label="radio cmake_targets", labelloc=t, fontsize=18];' echo 'node [shape=box, style="rounded,filled", fontname="Consolas", fontsize=10];' echo 'edge [fontname="Consolas", fontsize=9];' for target in "${targets[@]}"; do safe=${target//\"/\\\"} echo "\"$safe\" [label=\"$safe\", tooltip=\"$safe\", fillcolor=\"#dcfce7\"];" done for edge in "${edges[@]}"; do left=${edge%%|*} right=${edge#*|} left=${left//\"/\\\"} right=${right//\"/\\\"} echo "\"$left\" -> \"$right\" [xlabel=\"links\"];" done echo 'subgraph cluster_legend {' echo 'label="legend";' echo 'style="rounded,dashed";' echo '"legend_target" [label="cmake target", fillcolor="#dcfce7"];' echo '"legend_edge" [label="edge = target_link_libraries / target dependency", fillcolor="#f8fafc"];' echo '}' echo '}' } > "$dot_file" "$dot_exe" "-T$format" "$dot_file" -o "$image_file" items=(radio_directory_tree radio_module_dependency radio_cmake_targets radio_include_dependency radio_render_architecture) { echo '